sql注入 three day

什么是注入?

所谓SQL注入,就是通过SQL命令插入到WEB表单提交或输入域名或页面请求的查询字符串,最终到达欺骗服务器执行恶意的SQL命令,从而进一步得到相应的数据信息。

注入分类?

字符型   当输入的参数为字符串时,成为字符型。
数字型   当输入的参数为整型时,可以认为数字型注入

 

按照注入方法   Union注入,报错注入,布尔注入,时间注入,堆叠注入

什么时注入点?

注入点就是可以实行注入的地方,通常是一个访问数据库的连接。

如本页面注入点input the ID进入Less-1网址后面加上 ?id=1

如何判断是字符型注入还是数字型注入?

使用and 1=1和and 1=2来判断
数字型一般提交内容为数字,但数字不一定为数字型

Less-1 提交and 1=1和提交and 1=2都能正常显示界面,则不可能是数字型注入,即为字符型注入。

Less-2 提交and 1=1和提交and 1=2条件无法满足,语句无法被数据库查询到,网页无法正常显示,判断为数字型注入。

打开源文件,查看代码


字符型需要闭合,如图为 '
        $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

提交 and1=1

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

        单引号闭合语句后Where语句为一个条件id' 1 and 1=1'

 数字型则不需要闭合符来闭合

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

提交 and1=2

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

        数字型不需要闭合

闭合方式

'                            "                           ' )                           " )                         其他

如何判断闭合方式

Less-1输入?id=1'报错为near''1''

 '  1 '  ' LIMIT 0,1 '  at line 1

多了一个 ' 所有报错判断闭合符为'

闭合的作用

手工提交闭合符号,结束前一段查询语句,后面即可加入其他语句,查询需要的参数不需要的语句可以用注释符号 '--+' 或 '#' '%23' 注释掉

        注释掉利用注释符号暂时将程序段脱离运行。把某端程序"注释掉",就是让他暂时不允许(而非删除掉)。

union联合注入

提交 ?id=1' union select database()  --+

报错columns数量错误

用 group by 二分法判断默认页面数据列数

?id=1' group by 4 --+

Order by有同样效果

?id=1' group by 3 --+

得到列数为3

?id=1' union select 1,version(),database() --+

        页面只能显示第一个内容,第二句的内容是不显示的,可以把第一句的内容改为数据库存在的数据,如id=-1

?id=-1' union select 1,version(),database() --+

注入顺序

  1. 查找注入点
  2. 判断是字符型还是数字型注入 and 1=1 1=2 / 3-1
  3. 如果字符型,找到他的闭合方式,'   "   ' )   ")
  4. 判断查询列数,group by    order by
  5. 查询回显位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值