一、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、实例:
写一下后台页面:
ip=127.0.0.1 | whoami
因为的&本身是url中的变量隔离符,通过url编码后是%26,所以我们手动测试在URL中输入%26 whoami,在经过URL编码,后台接受到的参数命令执行结果就是: ip=127.0.0.1 & whoami
PHP命令注入笔记的更多相关文章
-
Fortify Audit Workbench 笔记 Command Injection(命令注入)
Command Injection(命令注入) Abstract 执行不可信赖资源中的命令,或在不可信赖的环境中执行命令,都会导致程序以攻击者的名义执行恶意命令. Explanation Comman ...
-
OS命令注入
SSL http://kb.cnblogs.com/page/162080/ http://baike.baidu.com/link?url=jPitKuDw_ncDlMbOc1SkWzM9TuKX9 ...
-
PHP漏洞全解(二)-命令注入攻击
本文主要介绍针对PHP网站常见的攻击方式中的命令攻击.Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来 ...
-
PHP安全编程:shell命令注入(转)
使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此.如果使用了被污染数据,命令注入漏洞就产生了. exec()是用于执行shell命令的函数.它返回执行并返回命令输出的 ...
-
Commix命令注入漏洞利用
介绍 项目地址:https://github.com/stasinopoulos/commix Commix是一个使用Python开发的漏洞测试工具,这个工具是为了方便的检测一个请求是否存在命令注入漏 ...
-
TCP/IP协议学习之实例ping命令学习笔记
TCP/IP协议学习之实例ping命令学习笔记(一) 一. 目的为了让网络协议学习更有效果,在真实网络上进行ping命令前相关知识的学习,暂时不管DNS,在内网中,进行2台主机间的ping命令的整个详 ...
-
Git常用命令清单笔记
git github 小弟调调 2015年01月12日发布 赞 | 6收藏 | 45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...
-
《11招玩转网络安全》之第五招:DVWA命令注入
首先还是将DVWA的安全级别设置为Low,然后单击DVWA页面左侧的Command Injection按钮. 图5-1 Low级别的命令注入 这个就是最典型的命令注入接口.在文本框中输入一个IP ...
-
PHP代码审计之命令注入
命令注入 命令注入就是通过利用无验证变量构造特殊语句对服务器进行渗透. 注入的种类有很多,而不仅仅是SQL Injection. php常见注入有以下几种(常见:,常见!!): 命令注入 (Comma ...
随机推荐
-
JQ 队列
<div class="divtt"> <div class="divtest"></div> </div> & ...
-
python 语法常用 lambda
Python中lambda表达式学习 http://blog.csdn.net/imzoer/article/details/8667176
-
linux关闭防火墙
查看防火墙状态: sudo service iptables status linux关闭防火墙命令: sudo service iptables stop linux启动防火墙命令: sudo se ...
-
swift NSUserDefaults的基本使用
import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...
-
kakfa源代码开发环境搭建过程中的错误处理
在window上搭建kafka的源代码开发环境,主要参考如下的blog: http://www.bubuko.com/infodetail-695974.html << Window ...
-
Linux下mongodb安装
1>设置mongoDB目录 cd /home/apps 附:centOS下创建目录命令 mkdir /home/apps 2>下载mongodb curl -O http:// ...
-
JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式
一:用最底层的方式,该方式用来创建别的对象树也可以 代码演示: <html> <head> <title>DHTML技术演示---表格创建--用最底层的方式,其实该 ...
-
POI操作Excel常用方法总结
转载自:http://blog.csdn.net/xjun15/article/details/5805429 一. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提 ...
-
oracle配置odbc数据源
今天配置oracle数据源心得: 1.需安装oracle客户端,若校验报错,将杀毒软件全部退出之后再重新安装: 2.安装完成后,运行odbcad32(64位),在odbc界面可找到相应驱动: 3.客户 ...
-
android studio 转为eclipse快捷键后还存在的问题汇总
提取局部变量:Ctrl+Alt+V 提取全局变量:Ctrl+Alt+F 提取方法:Shit+Alt+M 使用android studio 出现红色下划线代表有错误产生,eclipse中的Ctrl+1( ...