★安全测试之SQL注入★linux

读书与实践是获取知识的主要渠道,学习的权力只掌握在每一个人本身手中,让学习成为一种生活的习惯,这比任何名牌大学的校徽重要得多!程序员
——张老师web
导图安全
1. 什么是命令行注入?服务器
2. 实例演练微信
1. 什么是命令行注入?网络
命令注入:利用能够调用系统命令的web应用,经过构造特殊命令字符串的方式,把恶意代码输入一个编辑域(例如缺少有效验证的输入框)来改变网页动态生成的内容,最终实现本应在服务端才能工做的系统命令。一个恶意黑客能够利用这种攻击方法来非法获取数据或者网络资源。svg
命令注入攻击最初被关注到,是Shell命令注入攻击(因此最初也被称为Shell命令注入攻击),由挪威一名程序员在1997年意外发现的。学习
在黑客的世界,针对不一样的软件系统,有各自特有的命令注入方式。最多见的命令注入攻击形式是SQL命令注入攻击(简称SQL注入),是指恶意黑客利用设计上的安全漏洞,把SQL代码粘贴在网页形式的输入框内,进而改变服务端数据。PHP应用程序中也有名为PHP命令注入攻击的漏洞——国内著名的Web应用程序Discuz!、DedeCMS等都曾经存在过该类型漏洞。
不管哪一种形式,它们的攻击原理都是同样的。即当恶意黑客进入一个有命令注入漏洞的网页时,他们构造数据同时输入了恶意命令代码,由于系统对此并未过滤,恶意命令代码一并执行,最终致使信息泄露或者正常数据的破坏,甚至可能会致使恶意命令掌控该用户的电脑和他们的网络。
命令行注入攻击中经常使用的命令拼接符:
常见的拼接命令: |
|
|
|
&,&&,|,||命令拼接符的区别 |
|
A&B |
拼接,A和B之间无制约关系 |
A&&B |
A执行成功,以后才会执行B |
A|B |
A的输出做为B的输入 |
A||B |
A执行失败,以后才会执行B |
注:因为&在url中用于分隔参数因此在命令注入中须要转码为 %26 |
2. 实战演练
一、如下实际场景实验,打开靶机页面:
二、这是简单的ping功能页面,输入IP后,执行ping命令并返回内容,在“Enter an IP address: ”输入框里输入“127.0.0.1”,提交后,能够看到该命令正常执行后返回信息:
三、已知操做系统固有特色,使用链接符,能够执行多条指令:
command1 && command2 若是command1执行成功,则执行command2
command1 | |command2 若是command1执行失败,则执行command2
(实际链接符有多种组合方式,传说&和|两种链接符在windows和linux环境下都支持)
四、模拟攻击者,在“Enter an IP address: ”输入框里输入“127.0.0.1&&echo “hello world”” ,提交后,能够看到除了ping命令被正常执行外,echo “hello world”在最后被执行(hello world带着引号跑出来了,有点土啊):
五、模拟攻击者,在“Enter an IP address: ”输入框里输入“123||net user” ,提交后,能够看到ping命令执行失败,net user命令被执行:
六、一旦存在命令注入漏洞,攻击者就能够在目标系统执行任意命令,这一般意味着服务器被拱手让人。
3. 遗留问题
危害有哪些?世界上第一个命令注入攻击程序能随意地从一个网站删除网页,就像从本地磁盘删除文件同样简单;
什么类型的网站会执行系统命令?或者说哪些web应用会成为攻击的目标群体?目前只知道域名查询类的网站会用系统命令执行用户提交的信息。
接上一个问题,网站的什么部分会执行系统命令?
发现漏洞,该如何最大化体现漏洞价值?(挖掘价值)
利用完漏洞,该如何毁尸灭迹?(隐匿行踪)
-
怎么防范?初步思路是白名单,具体实施方法还须要进一步研究。
点点点点一下嘛
更多专题
1 |
|
2 |
|
3 |
|


想法丨发现丨习惯丨人文
让阅读成为习惯,让灵魂拥有温度


shalayang


秀米XIUMI

若是以为小编的分享对您有所帮助,欢迎转发和关注
本文分享自微信公众号 - 软件测试经验与教训(udatest)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。