php审计学习:xdcms2.0.8注入

注入点Fields:

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

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

打印 fields 数据查看:

从代码上看

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

最终会变成:

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

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

可以打印一下看看:

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

注入点username:

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

再看看 safe_html函数:

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

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

原文地址:https://www.cnblogs.com/perl6/p/7169320.html