php审计学习:xdcms2.0.8注入

时间:2023-03-09 02:21:05
php审计学习:xdcms2.0.8注入

注入点Fields:

注册页面会引用如下方法:

php审计学习:xdcms2.0.8注入

$fields 变量是从 $fields=$_POST['fields']; 这里获取, 在代码里没有过滤。

打印 fields 数据查看:

php审计学习:xdcms2.0.8注入

php审计学习:xdcms2.0.8注入

从代码上看

$field_sql.=",`{$k}`='{$f_value}'";

最终会变成:

 ,`truename`='111111',`email`='12345'

因为 $field_sql 最终会引入 一个 update语句:

php审计学习:xdcms2.0.8注入

可以打印一下看看:

php审计学习:xdcms2.0.8注入

最后在 truename或email位置报错注入即可:

php审计学习:xdcms2.0.8注入

注入点username:

关于用户名位置, 代码用了下面的函数过滤:

php审计学习:xdcms2.0.8注入

再看看 safe_html函数:

php审计学习:xdcms2.0.8注入

正则匹配到关键字后直接运行    showmsg函数:

php审计学习:xdcms2.0.8注入

看样子这个函数只是正则匹配后提示信息的作用, 并未能过滤注入:

php审计学习:xdcms2.0.8注入