php注入概述
rce概念:remote command/code execute,远程命令/代码执行。
php代码执行:在web中,php代码执行是指应用程序过滤不严,用户可通过http请求将代码注入到应用中执行
php代码注入与sql注入比较:
注入的思想类似,均是构造语句绕过服务器的过滤去执行。
区别在于sql注入是将语句注入到数据库中执行,而php代码执行是可以将代码注入到应用中,最终由服务器运行。
php代码注入的条件:
1.程序中含有可以执行php代码的函数或者语言结构
2.传入该函数或者语言结构的参数是可以由客户端控制的(可以直接修改或者造成影响)且应用过滤不严。
危害:
这样的漏洞如果没有特殊的过滤,相当于一个web后门的存在,攻击者可以执行漏洞继承web用户权限,执行任意代码。如果服务器没有正确配置或者web用户权限比较高的话,还可以读写靶机服务器任意文件的内容,甚至控制整个网站或者服务器。
相关的函数或语言结构
1.eval()函数
作用:该函数的作用是将字符串作为PHP代码执行。
例:
12345678<?phpif (isset($_GET['c ...
web
未读01.get&&post的区别:
1.传送方式的不同:get通过url进行传参,而post通过dao文传输。
2.传送长度的不同:get因为通过url栏进行传参,所以其长度是有限的,受限于url栏的长度。而post则没有限制。
3.get产生一个tcp数据包,而Post产生两个数据包。
get请求,浏览器会把header和data一起发送出去,服务器响应200
post请求,浏览器会先发送header,然后服务器响应100,之后再发送data,浏览器响应200。
4.get请求是幂等的,即多次请求同一个资源会得到相同的结果,而post请求是非幂等的,即多次请求之后对同一个资源会产生不同的结果。
5.get请求通常用来获取资源,而post请求通常用来提交数据发送表单,进行状态修改等操作。
6.get请求可以缓存,可以被存为书签,可以被浏览器的历史纪录查询,而post请求则都不能。
1url/?...=...
02url栏的组成
例子:http://thecat.top:80/cat/index.phpuserID=1&passwordID=123456#OK
1. ...