mysql 手工注入 字符类型

我的基本思路:
1、目标站点环境为:Windows+Apache+Mysql+PHP
2、存在SQL注入,能否直接写一句话木马
3、存在SQL注入,获取数据库中用户口令,登录应用系统后上传webshell

4、获取数据库口令登录phpMyAdimin,用phpMyAdmin写入一句话木马

当拿到一个MySQL的注入点的时候,我们需要判断MySQL的版本。因为当MySQL的版本小于4.0时,是不支持union select联合查询的;当MySQL版本大于5.0时,有个默认数据库information_schema,里面存放着所有数据库的信息(比如表名、列名、对应权限等),通过这个数据库,我们就可以跨库查询,爆表爆列。现在一般情况下,MySQL都是4.0以上的,所以我们就放心的用联合查询吧。

判断版本:and ord(mid(version(),1,1))>51

具体来说明下:
1、尝试1=1的情况,正确

  1. http://xxx/xxx.php?id=2900 and 1=1


2、尝试1=2的情况,错误,说明这是个整型的注入点
  1. http://xxx/xxx.php?id=2900 and 1=2



3、尝试'1'='1'的情况,错误,说明PHP开启了magic_quotes_gpc=on,不能直接利用注入语句写webshell了。还好这里是整型的注入点,如果是字符型的注入点那就没办法了。
  1. http://xxx/xxx.php?id=2900 and '1'='1'
4.如果第2步正确,使用字符类型 手工注入
尝试1=2'的情况,错误,说明这是个字符型的注入点
  1. http://xxx/xxx.php?id=2900 and 1=2'   或者  http://xxx/xxx.php?id=2900 '

5.order by 24,尝试当前注入语句的表中字段个数为24,错误,说明字段数小于24

  http://xxx/xxx.php?id=2900 order by 24

6.order by 23,尝试当前注入语句的表中字段个数为23,正确,说明字段数等于23

  http://xxx/xxx.php?id=2900 order by 23

   注:采用二分法策略可以提高效率

7.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值