sqli-labs-master GET - Error based - Single quotes - String

1.png

键入?id=1 后面直接添加一个 ' 来看一下效果

03.png

从上述错误当中,我们可以看到提交到 sql 中的 1'在经过 sql 语句构造后形成 '1'' LIMIT0,1, 多加了一个 ' 。

这种方式就是从错误信息中得到我们所需要的信息,那我们接下来想如何 将多余的 ' 去掉呢? 尝试 'or1=1--+

此时构造的 sql 语句就成了 Select******where id='1' or1=1--+' LIMIT0,1

此时正常返回数据。

此处可以利用 orderby。Orderby 对前面的数据进行排序,这里有三列数据,我们就只能用 orderby3,超过 3 就会报错。 'orderby4--+的结果显示结果超出。

、55.png

这里查看源代码里面写的SQL语句  

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

Id 参数在拼接 sql 语句时,未对 id 进行任何的过滤等操作,所以当提交 'or1=1--+,直接构 造的 sql 语句就是 SELECT *FROM users WHERE id='1' or 1=1--+ LIMIT0,1 这条语句因 or 1=1 所以为永恒真

 

此外,此处介绍 union 联合注入,union 的作用是将两个 sql 语句进行联合 

强调一点:union 前后的两个 sql 语句的选择列数要相同才可以 意思就是前面有多少字段,就必须要union 1,2,3,4到几

union9.png

当 id 的数据在数据库中不存在时,(两个 sql 语句进行联合操作时, 当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)此处前台页面返 回了我们构造的 union 的数据。

http://sqli.com/Less-1/?id=1100000000000000' union select 1,2,3--+

8.png

爆出可写位置  接下来就可利用 一般注入(select) 操作了

本博客所有文章如无特别注明均为原创。作者:odaycaogen复制或转载请以超链接形式注明转自 123``blog
原文地址《sqli-labs-master GET - Error based - Single quotes - String

郑重声明:本文只做技术交流学习使用,请尊重当地法规法律,勿对企业或个人网站及app进行破坏。如产生连带法律责任 123``blog 作者本人概不负责。

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)