前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络安全自学篇-PHP代码审计(十一)

网络安全自学篇-PHP代码审计(十一)

作者头像
字节脉搏实验室
发布2020-07-03 16:16:47
8840
发布2020-07-03 16:16:47
举报

代码审计实战之SQL注入漏洞

作者复现的是Axublog1.1.0版本下对用户输入过滤不严导致login.php页面存在SQL注入漏洞,攻击者可以利用漏洞进行SQL注入直接登录网站后台。 使用’进行闭合and1=1#,密码随便填写即可

登录成功

来看到login.php的代码,user和psw直接接收用户输入的参数,并没有过滤机制

追踪登录验证函数jsloginpost,位于文件c_login.php中

可以看到user和psw未经过滤便作为SQL语句中的一部分去执行

临时修补方案(过滤、或者使用预编译等等,这里我写个过滤的方案): 首先介绍这几个函数: array_map:array_map()函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。这里我们用array_map去调用SqlInjectionDenied函数将传入的值进行处理。 get_magic_quotes_gpc:出现在函数SqlInjectionDenied中,目的是得到环境变量magic_quotes_gpc的值,即检查是否开启魔术引号。 strip_tags:剥去字符串中的HTML、XML以及PHP的标签。 addcslashes:返回在预定义的字符前添加反斜杠的字符串,即转义。 代码如下,将其添加到c_login.php页面中即可:

来看到这里,user输出不是admin而是被转义后的admi\’\’\’n

接着我们再次使用jadore’and1=1#进行登录,发现无法登录成功。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 字节脉搏实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档