【WEB攻防】报错也能XSS?【CVE-2017-12794】Django debug page XSS 漏洞 复现+学习过程

中华人民共和国网络安全法(出版物)_360百科中华人民共和国网络安全法,《中华人民共和国网络安全法》是为保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济社会信息化健康发展而制定的法律。《中华人民共和国网络安全法》由中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议于2016年11月7日通过,自2017年6月1日起施行。https://baike.so.com/doc/24210940-24838928.html


目录

思考

官方POC

复现

防御方法

学习总结


思考

        对于我这样的新手来说,能这样实现XSS是没想到的,看来还是那句话,存在输入的地方都可能不安全。

        简单来说,这个漏洞就是利用了Django框架引入的数据库的Unique异常机制。我们在这个环境中,连续创建用户,然后填的用户信息是相同的,这样注入自然就会报错,引发了报错从而就会调用相关函数,从而执行我们输入的用户信息。感觉跟我最近学的二次注入有相似的地方。

官方POC

具体代码及原理可以看官方POC

Vulhub - Docker-Compose file for vulnerability environment

复现

在BMZCTF平台下(无需安装环境,平台给你使用靶机)

创建一个用户
url/create_user/?username=<script>alert(123)</script>

 在重新以这个URL发送请求(再创建相同用户报错)

 这里就插入了一个存储型xss了。

防御方法

更新版本

学习总结

        现在学了也有一定时间了,大多数漏洞的成因都依赖着代码,深入的理解代码的逻辑,就越有可能挖掘出漏洞,另外,这个漏洞其实作用并没有那么大,只是一般人根本想不道报错页面可以xss而且还是像这种类似二次注入的XSS,复现的过程中,我也试着插入其他语句,发现语句太长,或者是包含英文,都会被报错过滤掉,所以实际危害没有那么大。

参考链接

Vulhub - Docker-Compose file for vulnerability environment


作者水平有限,有任何不当之处欢迎指正。

本文目的是为了传播web安全原理知识,提高相关人员的安全意识,任何利用本文提到的技术与工具造成的违法行为,后果自负!

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值