收藏一下~
可以收录到专辑噢~
基于Python:XSS漏洞检测脚本
一、前言
编写XSS漏洞测试脚本的最主要思路是,如何检测页面的弹窗呢?方法是多种多样的,本文利用的是selenium模块来检测页面是否有弹窗,从而判断页面是否存在XSS漏洞。
二、知识点
- selenium模块的使用
- XSS漏洞原理和攻击方法
- pikachu靶场
三、源代码
方法1
直接在url上面注入测试脚本(该脚本开启了无界面访问):
from selenium import webdriver import time import traceback # 开启无界面访问 options = webdriver.ChromeOptions() # 创建一个配置对象 options.add_argument("--headless") # 开启无界面模式 options.add_argument("--disable-gpu") # 禁用gpu # options.set_headles() # 无界面模式的另外一种开启方式 driver = webdriver.Chrome(chrome_options=options) # 实例化带有配置的driver对象 url = "http://192.168.1.6/pikachu-master/vul/xss/xss_reflected_get.php?message=%3Cscript%3Ealert(%27xss%20exits%EF%BC%81%27)%3C/script%3E&submit=submit" driver.get(url) try: time.sleep(3) driver.switch_to.alert.accept() print("存在XSS漏洞!") except: print("没有XSS漏洞!") traceback.print_exc() finally: print("检测结束!") driver.quit()
方法2
直接在页面进行定位注入(该脚本开启了无界面访问):
from selenium import webdriver from selenium.webdriver.common.by import By import traceback # 开启无界面访问 options = webdriver.ChromeOptions() # 创建一个配置对象 options.add_argument("--headless") # 开启无界面模式 options.add_argument("--disable-gpu") # 禁用gpu # options.set_headles() # 无界面模式的另外一种开启方式 driver = webdriver.Chrome(chrome_options=options) # 实例化带有配置的driver对象 url = "http://192.168.1.6/pikachu-master/vul/xss/xss_reflected_get.php" driver.get(url) driver.find_element(by=By.NAME, value="message").send_keys("<script>alert('存在XSS漏洞!')</script>") driver.find_element(by=By.NAME, value="submit").click() try: # 判断是否有弹窗 driver.switch_to.alert.accept() print("存在XSS漏洞!") except: traceback.print_exc() print("不存在XSS漏洞!") finally: print("运行结束!") driver.quit()
四、结果分析
运行结果:
这个测试脚本还是很简单的,没有什么技术含量。到时候有空的话,就写一个加强版的XSS测试脚本,完善一下这个代码,使其功能更加强大。
另外,我个人感觉该脚本美中不足的地方是在selenium模块上,当然不是说selenium模块不好(selenium的定位注入非常方便),而是说要使用该脚本,则必须要提前安装selenium模块的驱动,这样子就显得特别麻烦,从而大大降低脚本的方便性。
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录