sqli第24关二次注入

注入点

# Validating the user input........
	$username= $_SESSION["username"];
	$curr_pass= mysql_real_escape_string($_POST['current_password']);
	$pass= mysql_real_escape_string($_POST['password']);
	$re_pass= mysql_real_escape_string($_POST['re_password']);
	
	if($pass==$re_pass)
	{	
		$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
		$res = mysql_query($sql) or die('You tried to be smart, Try harder!!!! :( ');
		$row = mysql_affected_rows();
		echo '<font size="3" color="#FFFF00">';
		echo '<center>';
		if($row==1)
		{
			echo "Password successfully updated";
	
		}
		else
		{
			header('Location: failed.php');
			//echo 'You tried to be smart, Try harder!!!! :( ';
		}
	}

$username= $_SESSION["username"];

$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";

对已经注册的用户的username没有转义特殊字符

思路

1,注册一个新用户admin'#虽然转义了,但特殊字符一起写进了数据库

2,用该用户更换密码,你更换的密码就是admin用户的密码 

sql语句变为

$sql = "UPDATE users SET PASSWORD='$pass' where username='admin'#' and password='$curr_pass' ";

说以你去更新的是admin的密码

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: SQLI-LABS第二是一个显错注入的数字型不闭合的挑战。在这个挑战中,通过分析后端PHP源码,我们可以看到核心语句是`$sql="SELECT * FROM users WHERE id= $id ;`。与前一相比,这里的闭合方式不同,没有使用单引号将$id包围起来。\[1\] 为了获取users表的列名,我们可以使用注入语句`?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'`。这个语句利用了UNION操作符和information_schema表来获取列名。\[2\] 通过判断报错信息,我们可以初步确定存在注入点,并且判断出注入点类型为数字型注入。我们还可以猜测出当前表中的列数为3,并确定数据显示位置为2和3。进一步进行信息收集,我们可以得到数据库名为security,数据库版本为5.7.26,操作系统版本为Win64,数据库用户名为root@localhost,数据库路径为E:\site\phpStudy_64\phpstudy_pro\Extensions\MySQL5.7.26\data\。通过指定数据库,我们可以获取库中的表名,得到的表名为emails、referers、uagents和users。然后,通过指定表,我们可以获取表中的列名,得到的列名为id、username和password。最终,我们可以获取到username和password的数据。\[3\] 希望以上信息对你有所帮助! #### 引用[.reference_title] - *1* [SQLI-LABS 02.第二 【显错注入_数字型不闭合】](https://blog.csdn.net/weixin_45284414/article/details/130685057)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [sqli-labs第二](https://blog.csdn.net/weixin_45633277/article/details/122371405)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [sqli-labs----第二](https://blog.csdn.net/wyzhxhn/article/details/127700962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值