php
常见的PHP风险点
PHP代码
这会显示一个文本框和提交按钮。当用户点击提交按钮时,"test.php"会处理用户的输入,当"test.php"运行时,“KaTeX parse error: Expected 'EOF', got '&' at position 125: …st.php?hello=hi&̲setup=no,那么,不止是…hello"被创建,”$setup"也被创建了。
可操作的参数名
如果我们提交URL:
key.php?=1&bbb=2 那么就导致一个xss的漏洞,想象一下如果这个key提交给include()等函数或者sql查询呢。
变量覆盖
a)这时我们提交URL: var.php?a=bye那么最后的显示效果应该是什么呢?
b)需要注意的是那个%3d。这个问题也同样会作用于mb_parse_str()
c)在register_globals开启的时候,请求var.php?GLOBALS[a]=aaaa&b=111,效果会如何呢?
d) 在register_globals被禁止的时候,import_request_variables可以同样起到对全局变量赋值的作用。
特殊字符截断
著名的null字符截断————
提交“action=/etc/passwd%00”中的“%00”将截断后面的“.php”
例1:
//ex1.php
d i r = dir = dir=_GET[“dir”];
if (isset($dir))
{ echo "
"; system(“ls -al”.$dir); echo "
";
}
?>
我们提交http://www.sectop.com/ex1.php?dir=| cat /etc/passwd
提交以后,命令变成了system(“ls -al| cat /etc/passwd”);
eval 注入攻击
eval 函数将输入的字符串参数当作PHP 程序代码来执行
函数原型:
mixed eval(string code_str)//eval 注入一般发生在攻击者能控制输入的字符串的时候