Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)

目录

1、反射型xss(get)

2、反射性xss(post)

3、存储型xss

4、DOM型xss

5、DOM型xss-x


XSS又叫跨站脚本攻击,是HTML代码注入,通过对网页注入浏览器可执行代码,从而实现攻击。

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第1张图片

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第2张图片

1、反射型xss(get)

Which NBA player do you like?

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第3张图片

由于提交框对输入长度有限制,我们直接对请求的参数 message 进行修改

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第4张图片

使用alert进行进行弹窗测试 ,构造payload:

xss_reflected_get.php?message=&submit=submit

出现弹窗

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第5张图片

注意:如果测试内容不是数字,而是字符串,需要引号(单引号或者双引号)包裹。 

比如:

xss_reflected_get.php?message=&submit=submit

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第6张图片

2、反射性xss(post)

使用很常见的弱口令

用户名:admin

密码:123456

登陆成功

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第7张图片

先进行弹窗测试,这里没有长度限制

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第8张图片

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第9张图片

读取所有可从此位置访问的cookie,构造payload

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第10张图片

拿到:

ant[uname]=admin; 
ant[pw]=10470c3b4b1fed12c3baac014be15fac67c6e815;
PHPSESSID=m8qbdmsb2npsiaktboiok0p9mo

很明显密码进行了md5加密,虽然md5加密是不可逆的,但是可以碰撞:

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第11张图片

关于弹窗测试的常用payload:


 

alert()方法:显示一条弹出提示消息和确认按钮的警告框,alert()是一个阻塞的函数,如果我们不点确认按钮,后面的内容就不会加载出来。

prompt()方法:显示提示用户进行输入的对话框,这个方法返回的是用户输入的字符串。

confirm()方法:显示一个含有指定消息和确认和取消按钮的确认框,如果点击"确定"返回true,否则返回false。

3、存储型xss

首先尝试获取cookie

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第12张图片

实现网页直接跳转常用payload:



关于三者的区别:

window.location.href:location.href是一个属性,改变url地址;

window.location.assign: assign会添加记录到浏览历史, 可以点击后退返回上一页面;

window.location.replace :通过指定URL替换当前缓存在历史里的项目,页面跳转后无法回退。 

尝试将跳转页面替换为我自己博客主页地址,构造payload:

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第13张图片

弹窗之后直接跳转到了我的CSDN个人主页面

为了更加清楚地反应储存型的特点:攻击代码会长期存在于服务器

我使用手机去访问这个页面:

也是出现了相同的弹窗,随后跳转至我的博客主页

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第14张图片

我们还可以将一个恶意的URL通过存储型XSS挂到页面中(网页挂马),只要存在未打相应补丁的用户访问了挂马页面,恶意攻击者便可获取受害者的控制权限(配合MSF)。

4、DOM型xss

先进行弹窗测试,但是没有出现弹窗,回显:what do you see?

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第15张图片

点击之后发现这里直接将我们提交的内容拼接到了url后面

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第16张图片

查看源代码:

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第17张图片

domxss 的函数从具有 id 为 "text" 的元素中获取输入值,然后将其作为链接的 href 属性值插入到具有 id 为 "dom" 的元素的 innerHTML 中。 

尝试它给的payload:

'>

通过在链接的 href 属性中闭合单引号,然后插入一个图片元素,该元素的 onmouseover 事件触发一个弹窗,显示 "xss"。

当我将鼠标悬停在图片上时,触发弹窗

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第18张图片

' οnclick="alert('xss')">

在链接的 href 属性中闭合单引号,然后插入一个新的 onclick 事件,该事件触发一个弹窗,显示 "xss"。

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第19张图片

点击该链接,触发弹窗

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第20张图片

触发的方式还有很多:

(1)使用JavaScript事件处理器

' onmouseover="alert('XSS')"

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第21张图片

(2)使用嵌套标签

'>

(3)通过onerror事件触发

'>

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第22张图片

4、使用JavaScript伪协议(点击触发)

javascript:alert(1)

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第23张图片

如果键入一个网站地址,点击后则会实现页面跳转

Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)_第24张图片

关于a标签:

点击触发
点击触发

其他常用标签




 




标签:





标签:
Click me
Click me
Click me