| 关键词: 密码 用户名 用户 yang 恶意 数据 注册 数据库 SQL 白帽 |
什么是二次注入?恶意数据插入到数据库时被处理的数据又被还原并存储在数据库中,当Web程序调用存储在数据库中的恶意数据并执行SQL查询时,就发生了SQL二次注入。 本课二次注入思路
这就是二次注入(不是注入两次),下面为你将演示在不知道对方密码的情况下实现sql注入恶意更改用户的密码! 二次注入实战首先我们得有一个用于Web渗透的SQL测试页面地址,这里我们以SQLlib进行测试,关注@小白嘿客,前往下方《从新手到Web白帽黑客》视频课程获取完整学习! 注册用户的地址是: 这里我们需要自己再创建一个用户密码修改php文件,用于直接访问数据库并修改用户密码的2.php;加入上方web专栏即可前往专栏资料库下载对应的2.php文件,然后放到win7靶机的下面路径位置! 代码如下: ![]() 大概的意思就是:接收用户的三个参数输入(要改密码的用户名,新密码,原始密码),这是一个只能修改已知用户名和已知密码的php文件。但是下面我们可以利用第一次注册的恶意用户名来躲避这个php文件没有过滤单引号导的机制来实现sql二次注入! 火狐访问: 然后点击右下角注册新用户! ![]() 这里我们注册一个正常的用户,假设这个用户是别人的,我们不知道密码! 再次使用注册页面,注册一个新的用户: 有空格,--代表注释后面,但是为了看得清楚,又使用一个空格和-,但是这个空格和-本身包括后面所有的语句都会被前面的--给注释掉! ![]() 此时前往win7靶机的phpmyadmin查看下: 已经注册在数据库里了! ![]() 既然注册,我们来访问2.php,修改yang' -- -这个恶意用户的密码,然后你就会发现我们要修改yang' -- -这个用户名的密码,没想到却将yang用户名的密码给修改了! 这样我们就能在不知道yang的密码下,就能登录yang用户了,从而造成数据泄露! 访问2.php需要指定用户名,新密码,旧密码! 火狐浏览: 意思是:将已知用户名yang' -- -的原始密码222222改成新密码999999!真的会如愿以偿吗? 肯定不会的,先看下图: 你会发现:被执行sql更新密码的语句时,先要找到用户名'yang'-- -',但是由于用户名是恶意的yang'-- -,sql语句本身的前后单引号会形成前面'yang'的闭合!后面的都被-- -注释掉了!这样明摆着就是修改yang这个不是我们自己的用户密码了,现在你得到的用户名是yang,密码是999999,登陆肯定也是yang的所有资料!但自己创建的yang'-- -密码依然没有被修改,真是隔山打牛啊! 我们执行看看,显示成功! ![]() 不信?我们去数据库看看有没有修改成功! 发现yang的密码无形被我们修改成功999999了。 ![]() 那我们来登录下yang的用户,登录成功!当然自己的yang'-- -还是能用原来的密码登陆的。 ![]() 总结:二次注入重点是,第一次需要往数据库存入数据,这一步不是注入!但是存入的数据是恶意的。第二次我们来提取数据,比如我们修改这个恶意用户名,导致将他人的用户名密码修改了,这就是二次注入的一种实现方式! |
| 本文出处: https://www.toutiao.com/a6836272933636145668/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|