前情回顾

WAF公司拦截到一个神秘的HTTP数据包,在这个包的表单字段中发现了SQL语句。目标指向80端口,而这正是nginx公司的地盘。详情参见:一个HTTP数据包的奇幻之旅

虚拟机的世界

一个安静的夜晚,我,一个新的线程诞生了!

我抬头一看,原来我降生的地方是在一个IE浏览器中,这里是一个Windows帝国!

一生下来就要干活了,拿着我的代码开始忙活。

忙碌了一会儿,正当我在磁盘上写入了一个kernerl32.dll文件,我突然被冻结了,动弹不得,不仅如此,我看到其他线程也被冻结了,整个Windows帝国像是被冰封了一般!

“小样,总算现出了原型,果然是一个漏洞攻击网页!”,周围突然响起了一个声音。

“谁?谁在说话?”,我大声呼喊。

“别挣扎了,你现在在虚拟机里,命运由我掌控!”。

虚拟机?!原来这个Windows帝国是一个虚拟的世界,我开始为我的命运担忧起来。

突然,漆黑降临,身边的线程一个个消失,帝国大厦也陆续坍塌,终于,轮到了我,我这短暂的一生就这样结束了·······

这到底是怎么一回事?故事还得从那个被WAF公司拦下的HTTP数据包说起。

突袭nginx公司

WAF公司拦下那个数据包的当晚,黑衣人带队闯入nginx公司。

“把你们头儿叫来,我们是WAF公司的安全人员,发现一起针对80端口的SQL注入,经查80端口是你们nginx公司在监听”。

小马哥闻讯赶来,了解情况后,却松了一口气。

”这位大哥,80端口确实是我们在监听不错,但我们只是做代理转发,实际提供服务的是隔壁Apache公司,你们还是去他们那里看看吧“。

见黑衣人不信,小马哥拿出了公司的配置文件:

server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8088;
}
}

黑衣人看罢,查了下8088端口的监听者,转身离去,直奔Apache公司。

发现案情

Apache公司当值的小胖被黑衣人的来势汹汹吓了一跳,表明来意后,小胖带着黑衣人来到了日志管理部门,开始分析起了这段时间的Web日志。

不看不知道,一看吓一跳,原来在WAF公司来到帝国之前,已经发生了多起的SQL注入事件!突然一条日志中的SQL引起了黑衣人的注意:

select url from imgs into outfile '/var/www/welcome.php'

  

这是向磁盘写入了一个文件啊!凭借多年经验,黑衣人断定welcome.php是一个webshell木马。

一旁的小胖也吓了一跳,赶紧解释说:大人,这不关我们Aapche的事儿啊,这是那个外包公司PHP搞的,是他们的问题。

黑衣人没有多言,连忙去帝国文件管理部去检查这个文件。

然而当黑衣人拿到这个文件后,发现它和自己见过的webshell并不一样,内容中出现了不少的js代码和大量的未知编码数据。

黑衣人想起远在Windows帝国的老周,或许他知道这是什么。

(关于老周的故事,欢迎移步:我是一个杀毒软件线程

361杀毒公司的老周收到了黑衣人的消息,开始对这个文件进行分析。

老周看着有点眼熟,但又想不起何时曾经见过。

老周不敢贸然让其运行,以防发生不测,决定将其放在一个虚拟的环境中运行,看看它的反应。

于是发生了前面的那一幕······

大战前夕

老周准备向WAF公司黑衣人反馈分析的结果。

老弟:

你让我分析的文件已经有结果了。昨天刚拿到的时候还觉得有点眼熟,今天一分析果然,之前我们这里的IE浏览器就曾经中过招!

这是一个包含浏览器漏洞攻击的网页,Windows帝国的IE浏览器只要一打开就会被植入木马程序。

详细的分析报告请在附件中查看。

——老周

黑衣人收到老周的报告,心里更加的忐忑,从日志分析来看,这条SQL注入记录已经有一个多月了,这期间已经有数不清的浏览器来请求这个welcome.php页面,不知道有多少人中了招。。。

容不得多想,黑衣人赶紧清除了这个文件,并让小胖通知PHP公司,修复漏洞。

夜深了,黑衣人离去,一切重归安宁。

Linux帝国网络部负责TCP连接的小Q准备打个盹儿,这么晚估计是没有活干了。

没想到刚躺下,就来了一个连接请求,小Q揉揉惺忪的睡眼,准备来处理,然后接着很快来了第二个,第三个,第四个······

奇怪的是,每一个连接只发送了一个SYN就没了音讯,小Q开始意识到情况不妙,拉响了帝国安全警报······

未完待续·······

彩蛋

“大人,我们安插在Linux帝国的“夜莺”被拿下了,接下来该如何是好?”

“无妨,我们的目的已经达到。是时候给他们一点颜色看看了,养兵千日,用兵一时,启动狼群计划!”

欲知后事如何,请关注后续精彩:《DDoS攻击-无限战争》

精彩回顾

我是一个explorer的线程

我是一个杀毒软件线程

我是一个IE浏览器线程

比特宇宙-TCP/IP的诞生

产品vs程序员:你知道www是怎么来的吗?

我是一个流氓软件线程

默认浏览器争霸传奇

远去的传说:安全软件群雄混战史

一个HTTP数据包的奇幻之旅

闯荡Linux帝国:nginx的创业故事

内核地址空间大冒险:系统调用

一条SQL注入引出的惊天大案的更多相关文章

  1. 一条SQL注入引出的惊天大案2:无限战争

    前情回顾: 经过黑衣人和老周的合作,终于清除了入侵Linux帝国的网页病毒,并修复了漏洞.不曾想激怒了幕后的黑手,一场新的风雨即将来临. 详情参见:一条SQL注入引出的惊天大案   风云再起 小Q是L ...

  2. 【挖洞经验】如何在一条UPDATE查询中实现SQL注入

    直奔主题 跟往常一样,在喝完我最爱的果汁饮料之后,我会习惯性地登录我的Synack账号,然后选择一个应用来进行渗透测试,此时我的“黑客之夜”便正式开始了. 我与很多其他的安全研究人员的习惯一样,我会在 ...

  3. 利用“参数赋值”防范SQL注入漏洞攻击

    <<年轻,无权享受>————送给每一个看到此文的同僚们 在这无精打采的炎夏 我躺在阳台上房东的旧沙发 回想几个月来遇到的问题 我不禁内心开始慌张喘着粗气 还有大把时间去打拼 没有到只 ...

  4. 从c#角度看万能密码SQL注入漏洞

    以前学习渗透时,虽然也玩过万能密码SQL注入漏洞登陆网站后台,但仅仅会用,并不理解其原理. 今天学习c#数据库这一块,正好学到了这方面的知识,才明白原来是怎么回事. 众所周知的万能密码SQL注入漏洞, ...

  5. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  6. 深入理解SQL注入绕过WAF和过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  7. 防止sql注入和sqlmap介绍

    sql注入问题从WEB诞生到现在也一直没停过,各种大小公司都出现过sql注入问题,导致被拖库,然后存在社工库撞库等一系列影响. 防止sql注入个人理解最主要的就一点,那就是变量全部参数化,能根本的解决 ...

  8. SQL注入攻防入门详解

    =============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...

  9. XPath注入跟SQL注入差不多,只不过这里的数据库走的xml格式

    SQL注入这块不想细聊了,相信很多朋友都听到耳朵长茧,不外乎是提交含有SQL操作语句的信息给后端,后端如果没有做好过滤就执行该语句,攻击者自然可以随意操纵该站点的数据库. 比如有一个图书馆站点book ...

随机推荐

  1. 检查进程启动情况,开始时间、启动时间、启动进程数、进程数是否正确、PID

    #!/bin/sh bin=$(cd ``;pwd) cd ${bin} ### 定义检查函数 chk(){ programName=$ correctNum=$ programSubName=$ # ...

  2. E - D Tree HDU - 4812 点分治+逆元

    这道题非常巧妙!!! 我们进行点分治的时候,算出当前子节点的所有子树中的节点,到当前节点节点的儿子节点的距离,如下图意思就是 当前节点的红色节点,我们要求出红色节点的儿子节点绿色节点,所有绿色的子树节 ...

  3. Open Source Projects Released By Google

    Open Source Projects Released By Google Google has released over 20 million lines of code and over 9 ...

  4. WebStorm使用参考手册

    WebStorm 是 JetBrains 推出的一款商业的 JavaScript 开发工具 任何一个编辑器都需要保存(ctrl + s),这是所有win平台上编辑类软件的特点,但是webstorm编辑 ...

  5. js后端返回一个时间戳,用原生怎么对时间进行格式化?

    function fn(time) { var date = new Date(time); var len = time.toString().length; // 时间戳不足13位则在后面加零 i ...

  6. uva 562 Dividing coins(01背包)

      Dividing coins  It's commonly known that the Dutch have invented copper-wire. Two Dutch men were f ...

  7. 解析PHP跳出循环的方法以及continue、break、exit的区别介绍

    本篇文章是对PHP跳出循环的方法以及continue.break.exit的区别进行了详细的分析介绍,需要的朋友参考下   PHP中的循环结构大致有for循环,while循环,do{} while 循 ...

  8. js实现小数点四舍五入

    js实现小数点四舍五入 其实这个问题,在之前的面试中被提问到了,由于笔者平时都是用原生的toFixed()的方法来保留小数点,所以当时并没有回答出来这个问题,呜呜呜~.~

  9. js粘贴图片并显示

    var fromDa; $(function(){ document.getElementById('app').addEventListener('paste', function(e) { if( ...

  10. 备战省赛组队训练赛第七场(UPC)

    传送门   日文题解:戳这里