前情回顾

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. js判断数组或对象是否相等

    /** * 验证两个object 是否相同 * @param {Object} obj [需要进行验证的数据1] * @param {Object} newObj [需要进行验证的数据2] */ fu ...

  2. 谷歌BERT预训练源码解析(二):模型构建

    目录前言源码解析模型配置参数BertModelword embeddingembedding_postprocessorTransformerself_attention模型应用前言BERT的模型主要 ...

  3. python selenium处理JS只读(12306)

    12306为例 js = "document.getElementById('train_date').removeAttribute('readonly');" driver.e ...

  4. windows 怎样关闭redis

    安装redis之后在命令行窗口中输入 redis-server redis.windows.conf 启动redis关闭命令行窗口就是关闭 redis.---redis作为windows服务启动方式r ...

  5. 性能测试基础-开门篇3(LR常用函数介绍)

    LR常用的函数,协议不一样函数会不一样,这里简单的介绍下HTTP\WEBSERVICE\SOCKET协议常用函数: HTTP: web_set_max_html_param_len("102 ...

  6. linux llseek 实现

    llseek 方法实现了 lseek 和 llseek 系统调用. 我们已经说了如果 llseek 方法从设备 的操作中缺失, 内核中的缺省的实现进行移位通过修改 filp->f_pos, 这是 ...

  7. C# 通过编程的方法在桌面创建回收站快捷方式

    基本所有的桌面都会存在回收站快捷方式,如果想要多创建几个快捷方式,点开就是回收站,请看本文的方法 在引用 Windows Script Host Object Model 这个 COM 方法之后可以使 ...

  8. 关于axios的一些封装

    关于Axios的封装 为何需要在封装 应用场景,项目中涉及100个AJAX请求,其中: 1.其中60个需要在请求头header设置token headers: {token: token}用于权限校验 ...

  9. Comet OJ - Contest #5

    Comet OJ - Contest #5 总有一天,我会拿掉给\(dyj\)的小裙子的. A 显然 \(ans = min(cnt_1/3,cnt_4/2,cnt5)\) B 我们可以感性理解一下, ...

  10. samba 部署与实验

    一.本地用户登录 1.本地用户验证(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户名和密码进行验证) 拓展:tdbsam:该方式是使用一个数据库文件来验证.数据库文件叫passdb ...