SQLi Labs Lesson24
来源:互联网 发布:js拖拽事件绑定数据 编辑:程序博客网 时间:2024/06/05 17:42
Lesson - 24
POST - second Order Injection *real treat* - Stored Injection
首先进入界面:
点击Forget_your_passoword?,结果如图所示:
那我们先注册一个账号:
username为:test
password为:test
用test登陆,界面如图所示:
在登陆界面尝试了各种单引号双引号等,发现没有卵用。
那么只能读源代码了,找注入点。
$username= $_SESSION["username"];$curr_pass= mysql_real_escape_string($_POST['current_password']);if($pass==$re_pass){ $sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' "; ......}
发现了这里SQL语句直接用了SESSION存储的username。
而SESSION中存储的username,
$_SESSION["username"] = $login;
而
$login = sqllogin();function sqllogin(){ $username = mysql_real_escape_string($_POST["login_user"]); $password = mysql_real_escape_string($_POST["login_password"]); $sql = "SELECT * FROM users WHERE username='$username' and password='$password'"; echo $sql; $res = mysql_query($sql) or die('You tried to be real smart, Try harder!!!! :( '); $row = mysql_fetch_row($res); //print_r($row) ; if ($row[1]) { return $row[1]; } else { return 0; }}
所以在update那条SQL语句中的username就是数据库中存储的usernname。
本节中的用的转义mysql_read_escape_string并没有改变字符串在数据库中的存储,即:
$item = "Zak's and Derick's Laptop";$escaped_item = mysql_real_escape_string($item);printf ("Escaped string: %s\n", $escaped_item);
的结果虽然是:
Escaped string: Zak\'s and Derick\'s Laptop
但是insert into foo values (...,'$escaped_item',...)后
在数据库中存储的还是:Zak's and Derick's Laptop
综上,我们创建一个用户:
username为:test'#
password为:123456
登陆该用户后,更改该用户密码:
新密码为:hack
点击Reset后,结果如图:
此时,我们进入phpmyadmin查看users表
发现test的密码,由原来的test,变为hack。
而test'#的密码没有改变。
此时回过头来看,更改密码的SQL语句:
$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";实际执行的SQL语句为:
UPDATE users SET PASSWORD='hack' where username='test'#' and password='123456'
0 0
- SQLi Labs Lesson24
- sqli-labs
- sqli-labs
- sqli-labs ---- Less-2
- sqli-labs ---- Less-7
- sqli-labs lesson-2
- sqli labs通关秘籍
- SQLi Labs Lesson1
- SQLi Labs Lesson2
- SQLi Labs Lesson3
- SQLi Labs Lesson4
- SQLi Labs Lesson5
- SQLi Labs Lesson6
- SQLi Labs Lesson7
- SQLi Labs Lesson8
- SQLi Labs Lesson9 Lesson10
- SQLi Labs Lesson11
- SQLi Labs Lesson12
- Delphi中根据分类数据生成树形结构的最优方法
- qt下MP3实现。
- Android常用的工具方法(1)
- QT中嵌入OSG场景,关于全屏及无法退出全屏的问题
- 项目管理九大知识点输入输出
- SQLi Labs Lesson24
- 项目管理之公式与知识
- 欢迎使用CSDN-markdown编辑器
- 自定义View基础之——图片加载进度条
- 多个下拉框同组数据不同选项的算法
- mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler
- iOS-OC-集成PayPal支付方式
- MongoDB配置与优化
- Android Activity生命周期以及onSaveInstanceState、onRestoreInstanceState要点备忘