xss漏洞性质

xss漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直处于前三的位置。

xss是一种发生在web前端的漏洞,所以危害对象最主要是前端用户。

xss漏洞可以用来进行钓鱼攻击,前端js挖矿,用户cookie获取。甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等。

xss攻击流程

xss窃取cookie的攻击流程一般为:用户访问存在xss漏洞的站点的xss页面,触发脚本;站点返回带恶意js的页面;用户执行脚本,发送窃取数据cookies给攻击者;攻击者伪造用户登录对站点进行破坏。

xss漏洞形成原因

是程序对输入和输出的控制不够严格,导致精心构造的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。

xss漏洞测试流程

① 在目标站点上找到输入点,比如查询接口,留言板等
② 输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理
③ 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
④ 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;

xss危害与不同形态

危害:存储型>反射型>DOM型。

反射型:交互的数据一般不会存在数据库里面,一次性,所见即所得,一般出现在查询类页面等。

练习部分

反射型xss(get)

打开pikachu靶场第二章节反射型xss(get)。先在网页输入内容测试可见在输入空数据时网页提示和输入错误数据时网页提示,当根据网页提示输入kobe时,网页返回提示和图片。

右键pikachu网页查看网页源代码,查看源代码找到弹出提示消息部分的代码。

观察输入错误回答时弹出的提示,我们可发现弹出的提示中会把我们输入的内容(比如这里输入了错误答案x)连带提示信息一起输出在网页上。利用这点我们把x替换为一段JavaScript代码,则网页在输出时会连带这一段输入的代码一起运行,输出在网页上。

回到网页按f12呼出控制台,用控制台左上角的选择工具选中输入框查看其代码,可见其代码行高亮。

因为要输入js代码段,而20格的长度不足以输入,所以这里把input选框可输入的长度改为20以上。右键该行代码,选择以html形式修改,更改maxlength最大长度数值。

回到网页,输入JavaScript代码<script>alert('xssget')</script>

提交后可见网页弹出提示框,内容为xssget,即我们输入的代码内容。把该弹窗网页网址复制下来。

点击提示确定回到原网页。刷新一下,再打开f12控制台,用选择工具查看代码,可见我们之前修改的input选框长度代码变回了原设定值20。

我们使用之前保存的网页地址进行访问,发现网页直接弹窗出现了xssget字样。

这样对比可知,利用我们保存下来的网址,我们成功利用网页xssget漏洞制造了一个执行脚本,用户点击我们保存的网址并不会像正常的网页一样显示网页提示,而是显示我们设定好的提示xssget。成功完成反射型xssget漏洞利用。

反射型xss(post)

打开pikachu靶场第二章节反射型xss(post)。由于此题目为练习获取用户cookie,第一步破解用户名和密码不是本题的练习内容,所以第一步基于表单的暴力破解就不再重复。步骤可见pikachu漏洞练习第一章节基于表单的暴力破解练习收获-CSDN博客

这里直接输入admin,123456,进入下一步后可见和刚刚xssget方式类似的输入框和输入提示信息。

重复刚刚在xssget中使用的方法,在输入框中使用<script>alert(document.cookie)</script>代码,点击submit弹出提示信息。

得到该用户的cookie信息弹出。由此可知如果能在网站网页上埋入该行代码并监听截获网站给用户的反馈信息,则攻击者可以获取到访问用户的cookie信息。

完成该次xsspost利用。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐