【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平台下(无需安装环境,平台给你使用靶机)

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

创建一个用户
url/create_user/?username=

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

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

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

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

防御方法

更新版本

学习总结

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

参考链接

Vulhub - Docker-Compose file for vulnerability environment


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

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

你可能感兴趣的:(web攻防学习,前端,django,xss)