buuctf EasySQL一点都不easy

本文记录了一位初学者在[SUCTF2019]EasySQL挑战中遇到的困难。作者尝试了万能密码、盲注等方法,但未能成功,最后通过查看他人解决方案和学习盲注技巧来理解题目。尽管题目名为‘EasySQL’,但对新手来说并不简单,引发了作者对SQL注入更深入学习的兴趣。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[SUCTF 2019]EasySQL一点都不easy

在这里插入图片描述原本看这个标题想着会是一个很easy的题
打开链接以后:
在这里插入图片描述看起来也是easy
先尝试一下万能密码
在这里插入图片描述直接回显nonono
应该没那么easy
看一下字段的数目:
在这里插入图片描述回显nonono
可能是被过滤了
有没有办法绕过
可能是我菜,没绕过
也没回显
没办法
试一下盲注
现学盲注:

盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注和报错的盲注
看大于长度一的值:
在这里插入图片描述同样的回显nonono

看一下数据库和表吧
终于有正常的回显了
在这里插入图片描述有一个flag
cat一下
还是回显nonono

我感觉应该抓个包看一下这个题到底过滤了多少查询词
这个对于初学sql的人来说一点都不easy
去看看大佬的wp吧
结果没看懂
等着问问大佬吧

### BJDCTF2020 Easy MD5 靶机信息与解题思路 #### 问题背景 在BUUCTF中的BJDCTF2020赛事中,Easy MD5靶机涉及弱类型比较漏洞和MD5碰撞特性。此题目要求用户通过构造特定输入来绕过验证逻辑[^1]。 #### 解题步骤分析 1. **初始参数分析** 根据题目描述,用户需要传递`money=100000000`和`password=404a`两个参数。这里的`password`能为纯数字,因此使用了`password=404a`以满足条件。然而,若未携带Cookie,则可能无法成功提交请求[^1]。 2. **密码验证机制** 密码的验证逻辑并非直接比对明文,而是依赖于字符串`ffifdyop`被MD5加密后的结果。其MD5值为`276f722736c95d99e921722cf9ed621c`,该值的前几位为`or`,这在MySQL查询语境下会被解释为SQL逻辑运算符`OR`[^4]。这种特性可能导致查询语句被篡改为类似以下形式: ```sql SELECT * FROM admin WHERE password='' OR '6xxxxx' ``` 这使得即使密码为空,也能通过验证。 3. **页面跳转与新参数需求** 成功通过初始验证后,页面会跳转至`levels91.php`。此时需要提供两个参数`a`和`b`,要求它们的值相等,但其MD5哈希值必须相同。这一需求利用了MD5算法的弱碰撞特性[^2]。为了满足条件,可以查找已知的MD5碰撞对,例如: ```plaintext a = -2428427199 b = -1663469027 ``` 或者其他符合`md5(a) == md5(b)`且`a != b`的值。 4. **代码审计与源码提示** 如果提供了源码,可以通过阅读代码进一步理解逻辑。例如,`password`字段的处理可能涉及弱类型比较,导致非预期的行为。此外,还需要注意是否存在其他潜在的安全漏洞,如文件包含或命令执行等[^3]。 #### 示例代码 以下是构造请求的一个示例: ```python import requests url = "http://target.com/easy_md5.php" data = { "money": 100000000, "password": "404a", "a": "-2428427199", "b": "-1663469027" } headers = { "Cookie": "PHPSESSID=your_session_id" } response = requests.post(url, data=data, headers=headers) print(response.text) ``` #### 注意事项 - 确保携带正确的Cookie以维持会话状态。 - 使用工具(如Burp Suite)抓包并观察请求响应数据。 - 若无源码,可通过字典爆破或其他方法推测关键逻辑[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值