linux json 写sql注入,sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery))

sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery))

0x1

网上搜下没有关于ajax的sql注入文章,这里简单写一下抛砖引玉。

原理自己百度,这里简单说下:

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行实时更新。

0x2

我这里用一个漏洞示例程序bWAPP来演示,先看下正常访问的情况:

输入框输入a实时更新出查询结果,地址栏地址为http://192.168.1.102/bWAPP/sqli_10-1.php?search=a

重新载入这个url是没有任何查询结果的,因为没有经过页面中javascript的AJAX处理其实没有查询数据库,那么注入点自然不在这里

下面来寻找真正的注入点吧

查看网页源码,查询输入框的表单action会只想ajax的代码所在,找到ajax所在的javascript代码如下:

bf610db13cf36d48af674e96fd15edef.png

提取关键代码如下:

//输入框的表单name为title,此处获取并处理创建一个key:value键值对赋值给search变量,该键值对形式与GET和POST的data一样,例如title=a

var search = {title: $("#title").val()};

//getJSON函数请自行百度查阅

//1、sqli_10-2.php即把数据提交到此文件,也就是说其实ajax查询数据是这个文件在处理

//2、search是存储的键值对,这里提交。正常查询时候是GET方法,那么这里也是GET方法,处理后的GET其实是

//3、第三个参数是查询成功后处理要调用的函数,这里是格式化了输出,我们忽略

$.getJSON("sqli_10-2.php", search, function(data){

//后面的代码是格式化处理查询结果的,我们不用关注

}

0x3

理论完了,注入点就很明了了

但是直接地址栏提交http://192.168.1.102/bWAPP/sqli_10-2.php?title=a 是不行的

好像是这里要验证Referer是http://192.168.1.102/bWAPP/sqli_10-1.php?search=a

那我们用brupsuite抓包修改,这不多说大家都会。

efb4946fff7142131ed47f739d2d3db2.png

加 ' 测试注入漏洞,下面看下返回页面,报数据库错误:

c0cb601672b310a58aeb92b6adfd817b.png

后面的注入就不说了,这里简单sqlmap演示下结果:

da2d974edb0838d2907957412ddb0ec0.png

8aa37d04cf7a6ce4817a8b9e52297b5c.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值