安全入门之SQL注入2

一、header注入

  1. header注入是利用站点在获取用户请求头时未过滤用户输入进行攻击的。例如:
$uagent = $_SERVER['HTTP_USER_AGENT'];
$sql = "select * from uagents where uagent='$uagent' limit 0,1"
  1. 利用相关插件或者抓包工具,修改UA值,猜解白名单系统。首先使用group by语句猜解字段数,在得到字段数后使用如下代码猜解白名单。
    在这里插入图片描述
  2. 对于IP、cookie属性的注入同理。

二、mssql报错注入

1.判断是否有注入点

  1. 在参数后面加单引号,页面报错。
    在这里插入图片描述
    在这里插入图片描述
  2. 在参数后面加 and 1=1,页面响应正常。
  3. 在参数后面加 and 1=2,页面数据不回显。判断该点有注入点,且id为int类型。

2.获取必要信息

  1. 查看系统版本号,修改参数为@@version,这里因为id的类型为int型,而@@在sql中返回的是字符串,所以它们的转换报错,从而获取版本信息。
    在这里插入图片描述
  2. 判断用户是否为管理员组权限,在参数后使用is_srvrolemember
    (‘sysadmin’)函数判断。该函数在用户属于管理员组权限时返回1,否则返回0.这里发现页面正常响应,说明返回值为1,是管理员组权限。
    在这里插入图片描述
  3. 别的sql函数同理使用

3.获取字段

  1. 使用having 1=1获取第一个字段。
    在这里插入图片描述
  2. 使用 group by 加 having 1=1 获取余下字段。获取title字段后,继续加入到group by中,获取下一个字段。
    在这里插入图片描述
  3. 使用转换错误获取字段内容。
    在这里插入图片描述
  4. 以上操作均给予页面会报错回显的条件下进行的。

三、mssql回显注入

1.判断是否有注入点

2.获取字段

  1. 使用order by 数字 ,来得到该表的字段数,例如在order by 5时页面正常响应,在order by 6时页面报错或无数据返回,则可判断该表有5个字段。
  2. 通过联合语句测试每个字段的类型。发现第1个字段为整型,第2、3、4字段为字符串类型(这3个字段位置可以替换返回值为字符串的系统函数)。在这里插入图片描述

3.获取所需数据库表和内容

  1. 在SQL server中,每一个数据库都有一个sysobjects系统表,它存放了该数据库内创建的所有对象。所以可以查看该表获取所需数据库表,输入下面代码就可以获得该数据库第一个表了。(u表示用户表)
    在这里插入图片描述
  2. 使用not in得到第二张表。同理可以获得你所需的所有表。
    在这里插入图片描述

4.获取字段

  1. 系统表syscolumns中保存了当前数据库中所以的字段内容,所以可以查询该表获取所需的字段内容。
    在这里插入图片描述
  2. 同理使用not in获取第后续所有字段。
  3. 最后获取字段内容。如下:(使用not in获取所有行内容)
    在这里插入图片描述

四、mssql提权

  1. 判断用户的权限,发现页面正常响应,则该用户具有管理员组权限。若不是管理员组权限则不可提权。
    在这里插入图片描述
  2. 判断数据库中是否存在xp_cmdshell。数据正常返回,该数据库中存在xp_cmdshell。
    在这里插入图片描述
  3. 判断xp_cmdshell是否启用。报错,说明数据库的xp_cmdshell未启用。
    在这里插入图片描述
  4. 启用xp_cmdshell。页面响应正常,启用成功
    在这里插入图片描述
  5. 添加用户到管理员组。使用如下代码
exec master..xp_cmdshell "net user name password /add"
exec master..xp_cmdshell "net localgroup administrators name /add"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值