萌新的手工sql注入入门--mysql(普通sql注入篇)

sql注入主要分为普通的sql注入,还有盲注
这一篇主要是记录普通的sql注入
sql注入的主要流程:

1.寻找注入点/判断该表单是否可注入:


主要运用的方法是,构造错误的语句(在正常输入的后面加上如单引号等敏感符号)
如:1’ ,1#等
同时,注入类型分为三类,数字类,字符类,还有如like%%等搜索函数
根据返回的结果进行判断是普通的sql注入还是盲注。

 

2.找到注入点之后,利用order by 猜解字段个数


若为数字类型注入:直接在后面跟上order by 数字即可
若为字符类型注入:须在order by 后加上注释符号#
利用order by 猜解流程,以数字型为例:

假如
数字 order by 1 // 通过
数字 order by 2 // 通过
数字 order by 3 // 通过
数字 order by 4 // 不通过
则该sql语句共查询了3个字段

由此,如果没有过滤掉union,我们就可以利用union来构造sql语句来查询。

 

3. 利用union构造sql语句来获取数据库名


主要函数 database()
还是以上面的为例,假设我们已经确定该sql语句查询了3个字段:
那我们先利用union构造一条select语句确定字段的顺序

1 union select 1,2,3,4
那么字段的顺序 就是查询结果对应后面的顺序.
由此我们知道了字段的查询顺序。
接着,将被显示出来数字对应的字段更改为database()

以2为例
1 union select 1,database(),3,4
那么原来2的地方就会返回当前的数据库的名字。

 

4.通过mysql的information_schema库来查询对应的表名


select 1,table_name,3,4 from information_schema.tables where table_schema=database

 

5通过对应的表名来获取字段名


select 1,column_name from information_schema.columns where table_name = table_name

 

6通过字段和表来获取数据


由此,整个sql注入的流程就结束了

转载请注明来自:LucyTime 原文地址:https://www.cnblogs.com/LucyTime/p/9392649.html

转载于:https://www.cnblogs.com/LucyTime/p/9392649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值