渗透测试系列|SQL注入

一、 因

背景:有位大佬跟我说,某个网站存在SQL注入,但是可能存在waf,需要帮忙验证一下。(漏扫扫出来的)

拿到url链接之后,开始了各种尝试,什么单引号啊、双引号啊、反引号啊、括号啊、基本的语句啊等等,页面返回都不是我所预想的结果。

开始怀疑是误报…

二、 果

和大佬聊了一下,看了报告里面的请求包

是两个@@触发了报错

然后尝试了一下,

//  当然也可以借助bp的内置字典

就是容易被封ip…

可以看到凡是带有@符号的都会报错,返回状态码500

既然注入点有了,那么开始构造poc来证明漏洞可利用

在两个@@后面,无论构造任何语句,都不会被执行

那么根据上文bp遍历字典的结果来看,似乎用一个@的话,后面的会被执行

开始构造

@and 1=1

根据这些信息加上报错回显,可得知是mssql数据库

Mssql报错注入很简单,拿相关函数(user,db_name())与数值进行比较、四则运算都可

所以获取用户名的poc为:@and user=1

//  区别于mysql,mssql的用户名为 user  数据库为db_name()

但是有一点问题,and  --- >  a_nd  

猜测规则是:检测到and,则把a替换成a_

绕过:改成大写

即 @anD+user=1

用@来终止上个语句,属实是第一次见,也不知道应用的sql语句是怎么写的

不得不感叹:大千世界,无奇不有。

通过信息收集,得知网站指纹,下载了相关最新版cms源码,发现还是有些出入的,可能是因为没有导入模板的原因…

顺便看了看install目录下的sql文件

猜测跟mssql的存储过程有关

具体原因未知,有空再去分析一下它的代码

看看是怎么插入数据库查询的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值