当前位置:   article > 正文

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

cve-2017-12794 如何修复

中华人民共和国网络安全法(出版物)_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平台下(无需安装环境,平台给你使用靶机)

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

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

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

防御方法

更新版本

学习总结

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

参考链接

Vulhub - Docker-Compose file for vulnerability environment


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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/462854
推荐阅读
相关标签
  

闽ICP备14008679号