找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5044|回复: 0

[验证开发] 如何实现特殊字符参数值GET传输的解决办法【附视频教程】

[复制链接]
发表于 2024-4-12 23:36:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在本框架API接口使用中,由于DISCUZ内置的防注入系统,导致在传输特殊字符时产生报错,下面我们就来解决这个问题:

360截图20240909155737.png

展示部分特殊字符:!@#¥%……&*()——+?/

例如:我们使用登录接口,其中有一个密码后面有 + 这个特殊字符,我们应该怎么办?

第一步:在你开发的客户端上,进行文本替换,把 + 这个字符,用 _jiahao_ 来代替; 【+ → _jiahao_

那么原密码是:demo+ 被文本替换成 demo_jiahao_,这样在传输过程中就没有特殊字符了。

第二步:通过二次扩展获取 passwrod这个密码传输参数,将 _jiahao_ 替换成 +
_jiahao_ → +

以下是验证扩展-内置钩子扩展实例:

[PHP] 纯文本查看 复制代码
    public function hook_param_password($params,$value){//所有参数调用
        /**
         * 批量替换文本
         * @param $str // 源文件
         * @param array $array //替换规则 array('要改变的字符'=>'要改变为的字符')
         * @return string //返回替换源文件
         */
            $value = xx_convert::str_replace_array($value, array(
                '_jiahao_' => '+',
                '_dengyuhao_' => '=',
                '_xiaoyuhao_'=>'<',
                '_dayuhao_'=>'>',
                '_zuokuohao_'=>'(',
                '_youkuohao_'=>')',
                '_yinhao_'=>'"',
                '_danyinhao_'=>"'",
                '_wenhao_'=>"?",
                '_xiegang_'=>"/",
            ));
        return $value;//返回解密结果,替换password参数的值
    }

总结:通过在客户端对特殊字符进行文本替换传输,再到插件后台利用扩展开发进行替换文本,达到传输特殊字符的双向传输,有效的绕过DISCUZ内置防注入系统。




第八课:特殊字符的GET传输





第八课:特殊字符GET传输-高级演示







您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|新秀网络验证系统API[软著登字第13061951号] ( 豫ICP备2021033257号-1 )

GMT+8, 2026-1-9 09:58 , Processed in 0.263960 second(s), 63 queries , Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表
slot777
slot qris
atlas123
KAPAK123
MENARA123
BARONG123
VIRGO123
HORAS123
KAKEK123
ION123
PATEN123
SALAM123
TUYUL123
KUNGLO123
PINTU123
JOKI123
INTI123
JADI123
MENANGBET
JADIJP
ACEH123
TINGGIBET
SUMBER4D
PULANG4D
POLAMAXWIN
INTAN123
dingin4d
paten123
slotsultan
slot sultan