标签:roo 代码执行 基于 path 标识 文件处理 命令 执行 page
代码注入漏洞:
OWASP将其定义为在客户端提交的代码在服务器端接收后当作动态代码或者嵌入文件处理。Wikipedia将其定义为客户端所提交的数据未经检查就让Web服务器去执行。
一:按照owasp分类,以下漏洞可以视作代码注入:
1.OS命令执行
1 <?php 2 $command=$_REQUEST["command"]; 3 system($command); 4 ?>
2.文件包含
1 <?php 2 $page=$REQUEST["page"]; 3 include($page); 4 ?>
3.动态函数调用
1 <?php 2 function A(){ 3 echo "A"; 4 } 5 function B(){ 6 echo "B"; 7 } 8 $func=$_REQUEST["fun"]; 9 $func(); 10 ?>
4.代码执行
1 <?php 2 $myvar="varname"; 3 $x=$_GET[‘arg‘]; 4 eval("\$myvar=\$x;"); 5 ?>
二:几种常见的代码注入
1.XML注
(1)XML是可扩展标识语言的缩写,XML是为传输数据,而非显示数据。
例子:描述管理员信息(admin.xml)
<?xml version="1.0" encoding="UTF-8"?> <manager> <admin id="1"> <name>admin</name> <password>admin</password> </admin> <admin id="2"> <name>root</name> <paaword>root</password> </admin> </manager>
XML注入是通过改写XML实现的,与XSS跨站脚本攻击相似,此漏洞利用关键在于闭合XML标签。
对于上面所述的admin.xml,管理员可以自己更改自己的密码,如果攻击者恰好能掌握password字段,那么就会产生XML注入,如攻击者输入:
admin</password><admin id="5"><name>hack</name><password>hacker</password></admin>
最终修改后的代码为:
<?xml version="1.0" encoding="UTF-8"?> <manager> <admin id="1"> <name>admin</name> <password>admin</password> </admin> <admin id="5"> <name>hack</name> <paaword>hacker</password> </admin> <admin id="2"> <name>root</name> <paaword>root</password> </admin> </manager>
这样通过XML注入就可以增加一个新的管理员。
(2)XML注入时的两大要素为:标签闭合和获取XML表结构
(3)修复:只需将预定义字符转义即可
2.XPath注入
3.JSON注入
JSON是一种轻量级的数据交换格式。它是基于Javascript的一个子集。JSON采用完全
4.HTTP Parameter Pollution
标签:roo 代码执行 基于 path 标识 文件处理 命令 执行 page
原文地址:https://www.cnblogs.com/bulrushlw/p/12932159.html