PHP命令注入笔记

时间:2021-10-06 22:38:47

一、PHP命令注入介绍

在学习php相关的攻击时,遇到了Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态 生成的内容。

使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此。如果使用了被污染数据,命令注入漏洞就产生了。

1、dos相关的字符和命令

1)& :and符,例如ping 114.114.114.114 & whoami 等价于ping 114.114.114.114  、whoami书序执行。 

==============================================
C:\Users\speinf>ping 114.114.114.114 & whoami

正在 Ping 114.114.114.114 具有 32 字节的数据:
来自 114.114.114.114 的回复: 字节=32 时间=29ms TTL=67
来自 114.114.114.114 的回复: 字节=32 时间=29ms TTL=58
来自 114.114.114.114 的回复: 字节=32 时间=34ms TTL=87
来自 114.114.114.114 的回复: 字节=32 时间=30ms TTL=84

114.114.114.114 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 29ms,最长 = 34ms,平均 = 30ms
speinf-pc\speinf

===============================================

2)|:管道符,前一个命令的输出作为下一个命令的输入。如下

===============================================
C:\Users\speinf>ping 114.114.114.114 | whoami
speinf-pc\speinf

C:\Users\speinf>

===========================================

3)||:分为两种情况:

命令1||命令2,命令1执行成功,则命令2被屏蔽,否则执行命令2

C:\Users\speinf>ping 114.114.114.114 || whoami

正在 Ping 114.114.114.114 具有 32 字节的数据:
来自 114.114.114.114 的回复: 字节=32 时间=297ms TTL=80
来自 114.114.114.114 的回复: 字节=32 时间=288ms TTL=66
来自 114.114.114.114 的回复: 字节=32 时间=204ms TTL=66
来自 114.114.114.114 的回复: 字节=32 时间=297ms TTL=65

114.114.114.114 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 204ms,最长 = 297ms,平均 = 271ms

C:\Users\speinf>
==================================================
命令1||命令2,命令1执行失败,则命令2被执行,否则执行命令2
C:\Users\speinf>ping 114.114.114.00 || whoami

正在 Ping 114.114.114.0 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。

114.114.114.0 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
speinf-pc\speinf

C:\Users\speinf>

2、php语言中以下5个函数,可以执行外部的应用程序或系统函数。

  

system、exec、passthru、shell_exec、“(与shell_exec功能相同)

函数原型

string system(string command, int &return_var)

command 要执行的命令

return_var 存放执行命令的执行后的状态值

string exec (string command, array &output, int &return_var)

command 要执行的命令

output 获得执行命令输出的每一行字符串

return_var 存放执行命令后的状态值

void passthru (string command, int &return_var)

command 要执行的命令

return_var 存放执行命令后的状态值

string shell_exec (string command)

command 要执行的命令

3、实例:

写一下后台页面:

PHP命令注入笔记

 ip=127.0.0.1 | whoami

PHP命令注入笔记

因为的&本身是url中的变量隔离符,通过url编码后是%26,所以我们手动测试在URL中输入%26 whoami,在经过URL编码,后台接受到的参数命令执行结果就是: ip=127.0.0.1 & whoami

PHP命令注入笔记

PHP命令注入笔记的更多相关文章

  1. Fortify Audit Workbench 笔记 Command Injection(命令注入)

    Command Injection(命令注入) Abstract 执行不可信赖资源中的命令,或在不可信赖的环境中执行命令,都会导致程序以攻击者的名义执行恶意命令. Explanation Comman ...

  2. OS命令注入

    SSL http://kb.cnblogs.com/page/162080/ http://baike.baidu.com/link?url=jPitKuDw_ncDlMbOc1SkWzM9TuKX9 ...

  3. PHP漏洞全解(二)-命令注入攻击

    本文主要介绍针对PHP网站常见的攻击方式中的命令攻击.Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来 ...

  4. PHP安全编程:shell命令注入(转)

    使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此.如果使用了被污染数据,命令注入漏洞就产生了. exec()是用于执行shell命令的函数.它返回执行并返回命令输出的 ...

  5. Commix命令注入漏洞利用

    介绍 项目地址:https://github.com/stasinopoulos/commix Commix是一个使用Python开发的漏洞测试工具,这个工具是为了方便的检测一个请求是否存在命令注入漏 ...

  6. TCP/IP协议学习之实例ping命令学习笔记

    TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...

  7. Git常用命令清单笔记

    git github 小弟调调 2015年01月12日发布 赞  |   6收藏  |  45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...

  8. 《11招玩转网络安全》之第五招:DVWA命令注入

    首先还是将DVWA的安全级别设置为Low,然后单击DVWA页面左侧的Command Injection按钮. ​ 图5-1  Low级别的命令注入 这个就是最典型的命令注入接口.在文本框中输入一个IP ...

  9. PHP代码审计之命令注入

    命令注入 命令注入就是通过利用无验证变量构造特殊语句对服务器进行渗透. 注入的种类有很多,而不仅仅是SQL Injection. php常见注入有以下几种(常见:,常见!!): 命令注入 (Comma ...

随机推荐

  1. JQ 队列

    <div class="divtt"> <div class="divtest"></div> </div> & ...

  2. python 语法常用 lambda

    Python中lambda表达式学习 http://blog.csdn.net/imzoer/article/details/8667176

  3. linux关闭防火墙

    查看防火墙状态: sudo service iptables status linux关闭防火墙命令: sudo service iptables stop linux启动防火墙命令: sudo se ...

  4. swift NSUserDefaults的基本使用

    import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...

  5. kakfa源代码开发环境搭建过程中的错误处理

    在window上搭建kafka的源代码开发环境,主要参考如下的blog: http://www.bubuko.com/infodetail-695974.html    << Window ...

  6. Linux下mongodb安装

    1>设置mongoDB目录   cd /home/apps 附:centOS下创建目录命令 mkdir /home/apps   2>下载mongodb   curl -O http:// ...

  7. JavaScript---网络编程&lpar;9-1&rpar;--DHTML技术演示&lpar;2-1&rpar;-表格创建的几种方式

    一:用最底层的方式,该方式用来创建别的对象树也可以 代码演示: <html> <head> <title>DHTML技术演示---表格创建--用最底层的方式,其实该 ...

  8. POI操作Excel常用方法总结

    转载自:http://blog.csdn.net/xjun15/article/details/5805429 一. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提 ...

  9. oracle配置odbc数据源

    今天配置oracle数据源心得: 1.需安装oracle客户端,若校验报错,将杀毒软件全部退出之后再重新安装: 2.安装完成后,运行odbcad32(64位),在odbc界面可找到相应驱动: 3.客户 ...

  10. android studio 转为eclipse快捷键后还存在的问题汇总

    提取局部变量:Ctrl+Alt+V 提取全局变量:Ctrl+Alt+F 提取方法:Shit+Alt+M 使用android studio 出现红色下划线代表有错误产生,eclipse中的Ctrl+1( ...