sql注入11、17、24关

sql注入第11关

查看源码后发现注入点。

复制代码
@$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
	$result=mysqli_query($con1, $sql);
	$row = mysqli_fetch_array($result, MYSQLI_BOTH);

在User Name输入框中输入注入语句,注意由于这次传参是用的POST,不会进行url编码,所以注释符不能使用--+,换成#就行。

注入语句:aaa' union select 1,database()#

sql注入第17关

查看源码。

复制代码
function check_input($con1, $value)
{
	if(!empty($value))
	{
		// truncation (see comments)
		$value = substr($value,0,15);
	}

	// Stripslashes if magic quotes enabled
	if (get_magic_quotes_gpc())
	{
		$value = stripslashes($value);
	}

	// Quote if not a number
	if (!ctype_digit($value))
	{
		$value = "'" . mysqli_real_escape_string($con1, $value) . "'";
	}
	else
	{
		$value = intval($value);
	}
	return $value;
}

可以看出这一关对sql注入进行了过滤。

value = "'" . mysqli_real_escape_string(con1, $value) . "'";

这行代码表示对单引号进行了过滤。

再查看一下代码后,发现了注入点,就是这个代码只对username进行了过滤,但是password并没有进行过滤,这就说明可以在password里进行注入。

@sql="SELECT username, password FROM users WHERE username= uname LIMIT 0,1";

但是注意的是这个username必须是数据库中存在的。

注入语句:1' and updatexml(1,concat(0x7e,database(),0x7e),1)#

sql注入第24关

查看源代码。

发现这一关有跟多的代码跳转,一个一个去看。

首先是logged_create.php。

发现其变量都被过滤了,无法注入;再看login.php。

也是如此,依然被过滤了;再看pass_change.php。

看完pass_change.php之后发现存在注入点,那就是username,username这个变量在前面的几个代码中确实被过滤了,但是依然被存入了数据库中,在这个代码中,username的数据又被取了出来,取出来的时候却没有进行过滤,这就产生了注入点,数据存入数据库又被取出这是一个典型的二次注入。

我们就以admin这行数据为例,进入注册界面。

用户名:admin'#

密码随便取:123456

然后回到登录界面进行登录。

就进入这个界面,这就来到了注入点了。

因为读出来的username是admin'#,这就把后面需要确认现在密码的地方给注释掉了,所以当前密码随便写,就可以随意修改admin这个用户的密码了。

提示修改成功,接下来查看数据库中数据是否被修改。

很明显,admin数据已经被修改成功。

相关推荐
さかた ぎんとき882 小时前
从SQL到磁盘的Mysql全链路解析
数据库·sql·mysql
それども2 小时前
数据库读写分离和事务的关系
数据库
TGITCIC2 小时前
2026数据分析Agent最新落地方向解析
数据库·数据分析·ai大模型·ai智能体·ai数据·ai问数·ai sql
wangqiaowq2 小时前
SQL Server 对非聚簇索引的 INCLUDE 列数量和大小有限制
数据库
Coder_Boy_2 小时前
基于SpringAI的在线考试系统-核心业务流程图
java·数据库·spring boot·软件工程
松涛和鸣3 小时前
DAY49 DS18B20 Single-Wire Digital Temperature Acquisition
linux·服务器·网络·数据库·html
海边的Kurisu3 小时前
苍穹外卖日记 | Day3 公共字段填充、菜品模块
数据库
摆烂z3 小时前
mysql通过binlog恢复数据
数据库·mysql
老邓计算机毕设3 小时前
SSM学期分析与学习行为分析系统c8322(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学习·ssm 框架·学期分析·学习行为分析
学Linux的语莫3 小时前
python创建redis连接池
数据库·redis·缓存