SQLi
首先看到一个空白页面查看源码之后给出了一个注入点,但是怎么都没有反应。假的!!!
然后百度之后才知道题目给出的链接和访问进去的链接是不一样的,进行了302重定向,在进去题目的时候就跳转了
然后抓包,发现了
请求和响应的链接竟然有一丝丝不同,我也是跪了!!!发现响应头中的链接把l换成了1,然后访问正确的链接,是空白的
在响应头中发现页面中有注入点,非常的细致,
然后访问l0gin.php?id=1,出现了表单,进行注入,先进行基础的注入,order by语句查看
发现在第3的时候id下面出现了id后面输入的内容,这里应该就可以注入啦,基于时间或布尔的盲注
发现输入内容的逗号后面的部分都被过滤了,然后百度绕过逗号的方法,用join语句代替逗号
绕过成功了,然后继续查询,表名-1‘ select * from(select table_name from information_schema.tables where table_schema='sqli') a join (select version()) b %23
查字段名 -1‘ select * from(select column_name from information_schema.columns where table_schema='sqli' and table_name = 'users') a join (select version()) b %23
只出现了id一个,用group_concat将所有的列出来
查询字段
总结:
重定向一般发生在访问域名而且不加参数或者文件夹名,文件名这样的情况下
sql注入也要留意HTTP信息的变化
可以利用SQL map跑一下看看有没有有用的信息
不使用单引号和逗号的注入的注入技巧(join语句代替)
1.substr()函数
substr(string,start,length)
string(必需)规定要返回其中一部分的字符串。
start(必需)规定在字符串的何处开始。
length(可选)规定被返回字符串的长度。
2、join语句绕过拦截逗号