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代码如下:

220226_wa2r_947688.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抓包修改,这不多说大家都会。

222503_7XNA_947688.png

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

222703_1KVu_947688.png

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

223433_Wi1H_947688.png

223437_D9dL_947688.png


转载于:https://my.oschina.net/watcher/blog/517295

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值