专栏首页yuancao博客二次注入——sqli-labs第24关

二次注入——sqli-labs第24关

第24关

提示说:please login to continue,请登录以继续。 没有账号怎么登录? 当然是选择注册

盲猜会有个admin的账号,所以注册一个admin '#的账号。密码是12345

(上帝视角)此时数据库里admin的密码是admin

登录刚刚注册的账号

然后为admin '#修改密码为123

修改成功(此时真的是修改admin '#的密码吗)

(又一次上帝视角)进入数据库,发现admin的密码成了123,而admin '#的密码并没有重置

原理

这就是二次注入,它的原理是:

(1)后端(PHP)代码对语句进行了转义

(2)保存进数据库(mysql)时没有转义,是原语句

简而言之就是数据库对自己存储的数据非常放心,而用户恰恰向数据库插入了恶意语句。

解析

比如前面所注册的admin '#账号,在注册时,后端对其进行了转义( addslashes() 或者mysql_real_escape_string和mysql_escape_string 等),'#被转义成了其他的东西,所以一次注入无效。 但是在保存进数据库的时候,还是admin '#

那么修改密码时的语句如下:

update users set  password='123' where username='admin '#'

所以你以为修改的是admin '#的账号,但是数据库理解成要修改密码的账号是admin

防范

至于如何防范二次注入也很简单: 一碗水端平,后端进行了转义,数据库也同样进行转义。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • apache配置基于端口访问

    如果看这篇文章有不明白的地方,可以先看看apache配置基于域名访问这篇文章,我是在配置完域名后,继续在后面配置端口的。

    宸寰客
  • 提权

    主要针对网站入侵过程中,当入侵某一网站时,通过各种漏洞上传shell,以夺得该服务器权限。

    宸寰客
  • 解析漏洞——中间件

    解析漏洞是指web服务器因对http请求处理不当导致将非可执行的脚本,文件等当做可执行的脚本,文件等执行。 该漏洞一般配合服务器的文件上传功能使用,以获取服务...

    宸寰客
  • 弱口令,yyds

    在渗透企业资产时,弱口令往往可达到出奇制胜,事半功倍的效果!特别是内网,那家伙,一个admin admin或者admin123 拿下一片,懂的都懂。

    Gamma实验室
  • SQL注入学习之 - Access数据库注入原理

    Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户...

    渗透攻击红队
  • pycharm wsl Permission denied

    一看就知道这个是linux用户权限的问题,一开始安装子系统会强制用户设置一个账户,该账户是个普通账户,无权擦写/usr/local目录下的文件

    马哥Python
  • mongoexport导出数据时遇到的种种问题(好坑)

    双愚
  • Django内置Admin

    Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contri...

    用户1214487
  • 远程访问openstack 数据库

    tanmx
  • 在 Django Admin 后台发布文章

    在此之前我们完成了 Django 博客首页视图的编写,我们希望首页展示发布的博客文章列表,但是它却抱怨:暂时还没有发布的文章!如它所言,我们确实还没有发布任何文...

    追梦人物

扫码关注云+社区

领取腾讯云代金券