news 2026/4/16 14:39:55

第四周作业wp学习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第四周作业wp学习笔记

第四周作业wp

  1. xss-labs(level1)

  1. xss-labs(level2)

这里看到代码把<实体化了,我们要让<逃逸出来就要主动闭合

?keyword=%27"><script>alert(1)</script>或

"><script>alert(1)</script>

3.

发现所有的尖括号全部被转义了,然后我们输入以下’ “ < >,看看谁没有被转义

发现单引号都没有被转义,就用onfocus事件绕过

但是我这里用了所有语法,都没有弹窗,不知道为什么,复制大佬的payload也没有用,非常的搞不懂

4.

发现符号并没有被转义

我们试着输入onfocus事件绕过,发现被过滤了

所以这里我们可以尝试<a> 标签

#"><a href=javascript:alert(1)>

点击蓝色字体,就可以通过

5.

输入常规命令,发现有一个script被替换成空了。这里感觉每次的靶场过滤的都不一样,看大佬wp,是把script全部过滤了,但是我的就不是,我的只过滤了一个,所以我双写script通不了关

这里我试了onfocus事件绕过,发现开头的on被过滤了,感觉有戏。

所以这里满足两个条件

  1. 一次性的替换
  2. 将关键词替换为空

所以我们考虑用双写绕过。于是我双写on,成功通过!

6.

我们可以看到友情链接是a标签,我们可以考虑伪协议javascript:alert(1)

添加友情链接直接就通过了

7.

发现输入框被隐藏了。

通过源代码,我们看到一个cook,这个t_cook应该是小饼干,所以应该是cookie注入

这里的type是指加入一个输入框,onclick命令用来执行。

但是很奇怪,我用cookie注入,没有任何反应。明明我的步骤,命令都是正确的,但就是无法出现输入框。很不解

8.PE结构

文件有一个名叫PE结构的压缩包,解压后是一个exe,把它拖进ida里面,发现什么都没有。然后我们搜索pe结构,发现pe结构重要的是文件头,所以我们把它拖去winhex里面

DOSNT就是 PE 文件中两个重要的文件头

DOS其首个字段 e_magic 必须为 0x5A4D(ASCII字符“MZ”),这是DOS可执行文件的魔术字,用于标识这是一个合法的DOS可执行文件

NT(IMAGE_NT_HEADERS)。它以一个4字节的Signature开头,其值必须为 0x00004550(ASCII字符“PE”后跟两个空字节),这是PE格式的魔术字。

所以这里WZ,大概率是被篡改的DOS头,我们把W改成M看看

发现flag直接出来了。

9. [第二章 web进阶]XSS闯关_第一关

用标准命令即可<script>alert('xss')</script>

10. [第二章 web进阶]XSS闯关_第二关

发现escape()函数:不会对数字、字母和* @ - _ + . / 进行编码,但其他所有的字符都会被转义序列替换,因此这里只能自己构造闭合:‘;alert(1);’

11. [第二章 web进阶]XSS闯关_第三关

发现单引号转义了,发现多了一个反斜杠+单引号(’),那么就相当于’'构成了闭合,也就是说,少了一个单引号,我们就添加一个单引号就好了。

成功!

12. [第二章 web进阶]XSS闯关_第四关

一进去,页面就一直重复跳转,而且注入的地方也没有,我们就打开源码

发现javascript说明是伪链接,而且我们也从源码中看到了注入名:jumUri

于是我们使用伪链接注入:

?jumpUrl=javascript:alert(1)

成功!

13. [第二章 web进阶]XSS闯关_第五关

代码审计:

通过getQueryVariable('autosubmit')检查URL中是否存在autosubmit参数。如果参数存在(即返回值不是false),则执行自动提交逻辑。

若URL中存在action参数(即getQueryVariable('action')不为false),则将表单的action属性设置为该参数的值(即表单提交到该地址)。

若action参数不存在,则默认提交到当前页面地址(location.href)

所以,命令中既要有autosubmit和action

?autosubmit=1是为了绕过getQueryVariable('autosubmit')检查

action=javascript:alert(1)是执行伪协议命令,用&连接即可,成功!

14. [第二章 web进阶]XSS闯关_第六关

我们访问源码给的网址

发现了AngularJS的版本号,接着,我们试试有没有xss注入漏洞

客户端模板引擎(如Angular的{{}}、Vue的{{}})会自动解析页面中的模板表达式(如{{user.name}}),并将其替换为动态数据。若攻击者能控制模板内容(而非仅数据),即可注入恶意代码。

示例:攻击者输入{{1+1}},若页面返回2,说明模板引擎执行了表达式,存在注入点。

说明存在漏洞

接着我们上网搜索angular(版本号v1.4.0-v1.4.9)沙箱逃逸漏洞

发现payload:

{{'a'.constructor.prototype.charAt = [].join;$eval('x=1} }};alert(1)//');}}

然后成功注入

15. BUU XSS COURSE 1

这个平台怎么搞不了啊

16.xianzhi_xss_1

为什么我打开靶场什么都没有,抓包也抓包不来?!why?求讲解

17. 神秘龙卷风

解压得到:

内容由“+”、“.”、“>”三种符号组成,经过搜索确认这是一种名为“Brainfuck”的计算机语言。

得到flag

18.

查壳:发现是64位

19. LSB

对于LSB隐写的图片,我们用StegSolve打开模块,由于是RGB三原色的最低位隐写,所以在Data Extract模,提取Red,Green,和Blue的0通道信息,在这三个颜色的0通道上打勾,并按下Preview键

拉到头后发现,这里是一个png文件头

之后按save bin保存图片,出来后发现,图片变成了二维码,用手机扫描,出现flag

20.

这个题目有题目描述:数学很酷!使用RSA算法对密文进行解码,c、p、q和e是RSA算法的参数。

所以我们要下一个rsa

用python算出n,填充在程序里,然后点击calc c算出d,也就是密钥

拿到密钥后,就去算密文了

在RSA算法中,已知密钥求密文的算法是加密算法,其核心公式为:
C = pow(M, e, n)

公式解析

  • C:最终得到的密文(加密后的消息)。
  • M:需要加密的明文(原始消息,需满足M < n)。
  • e:RSA的公钥指数(公开参数,与欧拉函数φ(n)互质)。
  • n:RSA的模数(由两个大质数p和q相乘得到,即n = p × q,公开参数)

用python脚本跑一下密文

这串密文外面包个flag{}就行了

21.sandbox(第三周作业)

太好了,终于做出来了

问题总结:

  1. 第三题,onfocus事件绕过,我用了所有语句,所有payload我都试了,看大佬的wp,直接copy过来也没有弹窗。所以我认为可能是靶场,网络的问题
  2. 第7题,cookie注入。用bp和hackbar都用了,cookie位置也调过,抓包看cookie的确是在文件头的。当然,我也把它拉下去过。结果,输入框都没有出现。Payload也去和大佬的wp比对过是一样的。所以搞不懂为啥出不来
  3. 第15题,存储型xss。问过Ai,看过b站讲解,看大佬wp。道理我都懂,就是前端后台两手抓。但是,xss平台我搞不来啊。图片和文字的payload都复制过去了,啥动静都没有
  4. 第16题,buu上0解出,点进去啥都没有,感觉可能是靶场的问题。
  5. 第18题,pwn里的ret2text,看了大佬的wp和b站老师部分知识点讲解,给我干力竭了。容我缓缓。。。给我点时间,把软件装好,把代码理解一下再做,实在力竭了。

第四周学习笔记

  1. xss常用语句
  1. 基础语句:<script>alert(1)</script>

这里经常会出现闭合符号绕过,就连着说了

用这个语句的时候,符号不免会出现转义,这里有一部分符号转义

字符

命名实体

十进制编码

<

&lt;

&#60;

>

&gt;

&#62;

&

&amp;

&#38;

"

&quot;

&#34;

'

&apos;

&#39;

【1】场景:<、>、"被过滤,但实体编码未被拦截

实体编码替换:用HTML实体编码替代被转义的符号,如'→&#39;、

"→&quot;。

示例:<img src='hello' οnerrοr='alert(1)'> → 绕过单引号过滤时改为 <img src=&#39;hello&#39; οnerrοr=&#39;alert(1)&#39;>。

【2】这里如果遇到当</>被转义为&lt;/&gt

主动闭合:

双引号闭合属性:

Payload:"><script>alert(1)</script>

原理:">闭合value属性和<input>标签,直接插入新的<script>标签执行代码。

当然,也会有题目提前闭合,类似于[第二章 web进阶]XSS闯关_第二关,这里强行把第一个出现的引号闭合,导致我们的命令少着,所以我们多加一个引号,也可以把命令里面的引号逃逸出来。

【3】场景:输入被包裹在单引号属性中(如value='用户输入'),且后端过滤双引号。

单引号闭合+注释

Payload:' οnclick='alert(1)' //

【4】场景:后端将onclick替换为空字符串。

这个时候双写响亮登场!!

Payload:oonnclick=alert(1)

【5】场景:后端过滤小写onclick,但未过滤大写

这种大小写混淆,ONclick=alert(1)

混着写就好了

(以上是遇到过的情况,并不是全部。以后遇到其他的会加上去的)

  1. a标签:<a>标签是XSS攻击的高频载体,其核心风险点在于**href属性支持javascript:伪协议**,攻击者可通过构造Payload将静态链接转化为可执行脚本。可以理解为<a>标签与href以及JavaScript伪协议有着深层绑定。看到a标签就可以考虑伪协议了

<a href=javascript:alert(1)>通过javascript:伪协议执行脚本

(3)onfocus事件绕过

核心要素

说明

示例或技巧

基本原理

利用HTML元素(如<input>)的事件属性执行JS,无需使用<script>标签。

onfocus=javascript:alert(1)

关键事件

onfocus:元素获得焦点时触发。onclick,onmouseover等也可用作替代。

onclick="alert(1)"

自动触发

结合autofocus属性,无需用户交互即可自动触发。

" onfocus=alert(1) autofocus="

闭合策略

根据输出点的引号类型(单/双引号)进行闭合,将事件注入到现有标签中。

单引号环境:' onfocus=alert(1) '

  1. PE结构

PE文件的头部是至关重要的,所以这里就系统的记录两个头部吧

DOS头 和 NT头 就是 PE 文件中两个重要的文件头

DOS头其首个字段 e_magic 必须为 0x5A4D(ASCII字符“MZ”),这是DOS可执行文件的魔术字,用于标识这是一个合法的DOS可执行文件

NT头 (IMAGE_NT_HEADERS)。它以一个4字节的 Signature 开头,其值必须为 0x00004550(ASCII字符“PE”后跟两个空字节),这是PE格式的魔术字。

分析文件头一般都是用winhex

  1. RSA算法

第一步:密钥生成

至关重要的一步!!

  1. 找两个大质数:随机选择两个非常大的、不同的质数pq
  2. 计算模数n:计算n = p * q。n的长度(比特数)就是密钥长度(如2048位)。n会同时出现在公钥和私钥中。
  3. 计算欧拉函数φ(n):计算φ(n) = (p-1) * (q-1)。计算完成后,立即并安全地丢弃p,q,φ(n)。它们绝不能泄露。
  4. 选择公钥指数e:选择一个整数e,使得1 < e < φ(n),并且eφ(n)互质(即最大公约数为1)。通常直接使用65537
  5. 计算密钥d

这一步很不好算,要不就写脚本,要不就用计算软件,这里我一般用软件

2.在RSA算法中,已知密钥求密文的算法是加密算法,其核心公式为:
C = pow(M, e, n)

公式解析

  • C:最终得到的密文(加密后的消息)。
  • M:需要加密的明文(原始消息,需满足M < n)。
  • e:RSA的公钥指数(公开参数,与欧拉函数φ(n)互质)。
  • n:RSA的模数(由两个大质数p和q相乘得到,即n = p × q,公开参数)

知道原理后就可以以此编写脚本,从而算出明文了。

p=9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483

q=11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407

e=65537

c=83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

d=56632047571190660567520341028861194862411428416862507034762587229995138605649836960220619903456392752115943299335385163216233744624623848874235303309636393446736347238627793022725260986466957974753004129210680401432377444984195145009801967391196615524488853620232925992387563270746297909112117451398527453977

n=p*q

M=pow(c,d,n)

print(M)

这是我根据作业写的python脚本。记录一下,以后换下数据也能用0v0

以上是我这个星期的学习心得,有部分笔记由于过于零散,就没有系统记录,但是在题目的wp中有体现,希望师兄师姐们海涵。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 9:56:55

颠覆式3D皮肤预览工具:3大维度重构Minecraft皮肤设计流程

颠覆式3D皮肤预览工具&#xff1a;3大维度重构Minecraft皮肤设计流程 【免费下载链接】skinview3d Three.js powered Minecraft skin viewer. 项目地址: https://gitcode.com/gh_mirrors/sk/skinview3d 如何让你的皮肤设计跳出平面限制&#xff1f;当大多数创作者还在2D…

作者头像 李华
网站建设 2026/4/9 13:10:18

告别资源获取困境:3套创新方案让数字内容触手可及

告别资源获取困境&#xff1a;3套创新方案让数字内容触手可及 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 您是否曾遇到这样的场景&#xff1a;花两小时在教育…

作者头像 李华
网站建设 2026/4/16 1:06:25

鸣潮自动化工具进阶指南:从配置到优化的全方位实践

鸣潮自动化工具进阶指南&#xff1a;从配置到优化的全方位实践 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 一、工具概…

作者头像 李华
网站建设 2026/4/16 13:32:57

游戏自动化工具真的能提升效率吗?实测30天的深度体验

游戏自动化工具真的能提升效率吗&#xff1f;实测30天的深度体验 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 在游戏过…

作者头像 李华
网站建设 2026/4/16 13:35:00

本地AI翻译如何守护你的隐私安全?从零搭建专属翻译引擎

本地AI翻译如何守护你的隐私安全&#xff1f;从零搭建专属翻译引擎 【免费下载链接】pot-desktop &#x1f308;一个跨平台的划词翻译和OCR软件 | A cross-platform software for text translation and recognize. 项目地址: https://gitcode.com/pot-app/pot-desktop 在…

作者头像 李华