0x00前言
sqli-labs 第一阶段已经ok了 然后这是第二阶段的题目 发现明显有些不一样了 这次是登录框和注册框 弄了会感觉有点懵逼所以干脆写个博客记录一下好了
0x01分析
首先我们可以发现这是一个登录的窗口有着注册和登录还有忘记密码 当我们点击忘记密码的时候 会提示 如果我忘记了密码那么就尝试黑入 在我简单的测试了一下 发现好像都没找到什么 所以没办法 来看一下源码 由于有很多php 文件所以我们找出含有sql语句的几个php文件 来从源码分析一下
然后分别查看一下 这些文件 发现很多地方都使用了 mysql_real_escape_string 这个函数 在网上查了一些这些函数可以把 符号进行转移 简单的来说这个函数可以防止sql注入
但是在这个文件中我们发现 username那一行是存在注入的 所以 我们可以对username进行利用看一下文件的名字 pass_change 所以这个攻击应该发生在修改密码的页面进行的 所以我们可以注册 admin'# 的账号 然后观察我们如果注册了 这个账号源码会发生什么
这里session就不过多介绍了 username是存储在session里面的 所以这里面的usrename 从session里面取出来并没有进行过滤 所以这里也就存在了注入了 反管我们的数据库 我们之前通过 用户名 admin'# 密码1 注册了一个 账户 如下所示
现在我们的admin 密码是123 看我们之后会变成怎么样~~~
我们把密码改成 123456 然后再看数据库
发现我们admin 的密码就变成了 123456 了 这个是二次注入 我们以用户名为 admin'# 账号进行登录 在修改的时候 表面上是修改这个 账号 但是由于有注入点所以实际上我们更改的是 admin的账号 并且把admin的密码改成我们想改成的密码