前言

某日突然对肥宅的生活感到了厌倦,竟连肥宅快乐水喝起来也索然无味,我需要改变!想起胖友几天前发的一个灰色性质网站,正好测试一下打发时间。直入主题,通过访问网站发现需要输入密码,地址栏有传递参数,手工测试加引号报错,初步判断存在SQL注入。

链接:http://xxxx.com/login.php?id=1'

发现Get传入id参数,直接加引号

如上报错,且显示了数据库查询语句,select* from catconfig where id='1''。

一般来说到这里,可以直接扔进Sqlmap跑,我作为一个肥宅主义者-懒,自然选择抄起神器一顿操作,然后便出现如下的画面。

如上,Sqlmap报一大片刺眼的红色光芒让我的眼睛发疼,我知道这不是一个简单的站,“连接被重置”简简单单五个字让人心凉凉,这个站看似漏洞百出,实则暗藏玄机。根据我多年的计算机基础知识判断,这站应该是有WAF,只有WAF才能如此毫不讲道理,如此狠心,甚至没任何提示的就把我IP拉黑了,一般来说waf拉黑IP是有时间限制的,10-40分钟不等,可以设置。于是在等待的时间里,我进行信息收集。

正常的测试流程,信息收集应该是最先做的。不过我是个肥宅,不到必不得已,我很可能就忽略不收集了。

信息收集

在被拉黑的这段时间里,我收集了一些基本信息,如下

1、IP:x.x.x.x xx省xx市阿里云

2、独立服务器,无旁站

看到阿里云我突然就明白了,阿里云盾防护,难怪被拉黑了。此处透露一个可能人尽皆知的小技巧,阿里云盾不拦截阿里云自身的服务器,所以如果用阿里的ECS去跑就不会被拦截。不过我作为一个肥仔,能省一杯快乐水的钱则省一杯,不到必不得已,我不会去开通阿里云的ECS的。

过了差不多半个小时,我发现我的访问恢复了,顺带收集一下服务器环境信息。

1、容器:Nginx(访问不存在的目录,404页面)

2、系统:Linux(通过大小写判断,Linux对大小写敏感,Windows大小写不区分)

3、数据库:Mysql(引号报错)

4、脚本:php

(不瞎都看的出来)

在获取上述信息后,进行下一步的测试。

两层防护?

于是又回到原点,我看着这个主页面,页面静静的看着我,貌似在说:来啊,小老弟,怕你不成。此时我想点支烟,但我突然想起没有打火机,再一想,我根本不抽烟啊,于是我喝了一口快乐水,嗝~。

手工测试,顺手and1=1,返回

噗,这不是360安全主机吗?除了阿里云盾还有360安全主机?

于是开始了疯狂的Fuzz,感觉想用unionselect去查询是很困难的了,测试中发现使用报错注入能成功Bypass。如下:

exp(~(select*from(select%20user())x));--+

构造为:http://xxxx.com/login.php?id=1'and exp(~(select*from(select user())x));--+

如上,可以获取当前的数据库用户,附常用的函数,分别进行测试

1.version()——MySQL版本

2.user()——数据库用户名

3.database()——数据库名

4.@@datadir——数据库路径

5.@@version_compile_os——操作系统版本

此外,在该站点的另外一处注入点处,发现表名cat_members

此处先假定admin用户也存在cat_members表中,根据多年的计算机基础知识,一般列名为username,password。为什么这样,因为懒想碰碰运气。

那么我的查询语句应该是:

但是当试图读password数据时

于是进行测试,发现以下规律:

当出现Selectfrom时会进行拦截

于是整个测试重点变成了如何BypassSelect from 语句。

思考尝试

由上,测试主要受阻于拦截了Selectfrom语句,于是我抄起键盘一顿百度加论坛乱搜,找到了大佬们以前的bypass方法。

搜索到的一些Payload

1、/*!12345select*//**/from

2、/*!50001select*/from

3、Select/**/column_name/**/from

4、/*!/*!select*/column_name/*!/*!from*/

5、空格用/*!*/代替

6、%53elect/*!1,2,schema_name%0aFROM

7、Get+Post,编码,超长内容等等。

以上收集来源于土司论坛及百度搜索。

但测试发现只要带/**/这样就直接拦截了,所以上述的payload在此处都失效。

根据如上的测试,判断是通过正则进行匹配,只要匹配到某些字符则进行拦截

测试到这里,我已经很疲惫了,200斤的身体也开始慢慢透支,力不从心,于是我缓缓翻着网页上的搜索结果,继续逐个测试,竟然发现了转机。

突破总结

可能是真的运气好,真好,明天会更好,大家好,我是陆超。呃,回到话题,在先知论坛的一篇文章中,我的WafBypass之道(SQL注入篇)中,找到了一个Bypass方法。

链接:https://xz.aliyun.com/t/368

Payload:%23%0a

此处确实运气好,成功猜到了admin用户在cat_members,且列名为username、password。如果不是的话,可以使用以下方法,逐个获取,先获取表,在获取列名,不过需把空格替换为以上的payload。

接上,解密一下,登录即可

总结:

网上bypass的文章有很多,不过还是要结合实际进行测试,很多时候运气与坚持也占了很大因素,作为幸运肥宅,我不会轻易低头。后续发现此为匹配规则如下,作为小白,看得我脑壳疼,欢迎各位大佬指教。

文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此作出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明

记一次SQL注入Bypass过程相关推荐

  1. sql 整改措施 注入_记一次Sql注入 解决方案

    老大反馈代码里面存在sql注入,这个漏洞会导致系统遭受攻击,定位到对应的代码,如下图所示 image like 进行了一个字符串拼接,正常的情况下,前端传一个 cxk 过来,那么执行的sql就是 se ...

  2. php采集绕过cloudflare,绕过Cloudflare进行SQL注入 bypass cloudflare

    绕过Cloudflare的waf进行SQL注入 有关应用程序的详细信息 该应用程序是一个用PHP编写的通用网站,其中MySQL作为后端DBMS.易受攻击的页面向/index.php端点提交了包含多部分 ...

  3. 【网络安全】SQL注入bypass最新版安全狗

    前言 安全狗又偷偷摸摸更新了 [网络安全学习] 绕过 之前安全狗就像没开发完一样,简单内联就过去了,但是现在的安全狗摇身一变,变得稳重了起来. 就连报错界面都变成了大人的模样. 看这架势,不好过啊 首 ...

  4. mysql延迟注入br_(原创)安全狗SQL注入绕过思路[sql注入waf绕过][sql注入bypass]

    2017/09/03_Bypass_safedog_Sql注入 prat 1 本文大致内容 + 思路以及想法 - 四重注释绕过safedog + 实战绕过 - 绕过and 1=1 - 绕过union+ ...

  5. 白帽SQL注入实战过程记录(2)——根据information_schema组装SQL注入语句

    目录 接上一篇内容 写在前面 信息汇总 漏洞汇总: 数据库信息: 利用inf

  6. sql注入bypass方法

    https://www.cnblogs.com/drkang/p/8497142.html https://www.cnblogs.com/drkang/p/8644399.html

  7. Bypass 360主机卫士SQL注入防御(附tamper脚本)

    0x01 前言 在测试过程中,经常会遇到一些主机防护软件,对这方面做了一些尝试,可成功bypass了GET和POST的注入防御,分享一下姿势. 0x02 环境搭建 Windows Server 200 ...

  8. SQL注入原理及过程简单介绍

    1.产生SQL注入原因        开发代码的时候没有全面考虑到网络安全性,特别是在用户交互时,没有考虑到用户提交的信息中可能破坏数据库,没有对输入的数据进行合法的过滤.SQL 注入过程目的性是非常 ...

  9. 【WAF剖析】——SQL注入之安全狗bypass深度剖析

    作者名:Demo不是emo  主页面链接:主页传送门 创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷 座右铭:不要让时代的悲哀 ...

最新文章

  1. 基于稀疏表示的人脸识别 (SRC,LASRC,RASL,MRR)
  2. 事件相关去同步 (ERD) 和事件相关同步化 (ERS)在脑电信号研究中的应用
  3. SparkSQL之External Data
  4. 视频播放器的界面设计并实现播放器
  5. 【今晚7点半】:华为云视频直播在各细分场景的体验指标优化实践
  6. numpy基础(part7)--多项式拟合
  7. image是否有disabled属性_Vue学习笔记 模板语法、计算属性
  8. redis调优 -- 内存碎片
  9. 看,他们都转行做web前端工程师了
  10. java多线程-生产者消费者模式
  11. 仪表自定义刻度值_汇总丨工业仪表知识大全和选型参考
  12. 核磁谱图分析步骤_微谱技术:想要涂料开发,少不了仪器分析……
  13. java.sql.SQLException: Field 'id' doesn't have a default value解决方法
  14. 开机netmeeting已删除_NetMeeting
  15. Spring实战(第5版)核心知识点总结
  16. Excel表Ctrl+v和Ctrl shift+v有什么区别_朴素的办公神器——excel
  17. centos安装uWSGI失败处理办法Exception: you need a C compiler to build uWSGI
  18. CEF 对CRX的支持程度
  19. 哎我就不信了,Java IO有这么难吗?
  20. 校园歌手信息评分系统(C语言),大一新生期末实训

热门文章

  1. 简述php的特点,PHP语言有哪些优势和特点(三)
  2. 密码学——RSA加密算法
  3. 采样 -- 基本概念
  4. 西门子S7-200 SMART控制步进电机(二)
  5. FPGA学习之路-ZCU106板子点亮PS侧LED
  6. 惹人的应聘简历/邮件是怎样的
  7. 【A40i-Android7.1】---编译报错:No Jack server running. Try ‘jack-admin start-server
  8. 大型建筑公司如何实现数字化转型
  9. int转换成char
  10. CocosCreator 微信小游戏、Android 和 iOS 使用 protobuf