Web入门2


本次实践来自ctfshow

web21

描述:爆破什么的都是基操
Hint:考点tomcat 认证爆破之custom iterator使用 https://www.cnblogs.com/007NBqaq/p/13220297.html下载密码字典抓包,通过burpsuite暴力破解

开启代理,BP抓包,ctrl + R送到中继器,发现如下,批准基础(Authorization Basic)为base64加密结果,刚好对应我的输入 用户名:密码( admin:123 )
tap1

更改配置如下,然后start attack
tap2
tap3
answer21

web22

描述:域名也可以爆破的,试试爆破这个ctf.show的子域名
知识点:子域名爆破(此题不能爆破出来)在线子域名爆破,在子域名的title上有时可以显示出来
这题flag已经给出了显示

web23

描述:还爆破?这么多代码,告辞!
观察php代码,得到flag要两个判断都进去
即:$token第1,14,17相等;第(1+14+17)/1===第31位即可,方法有很多种

include('flag.php');
if(isset($_GET['token'])){
    $token = md5($_GET['token']);
    if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
        if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
            echo $flag;
        }
    }
}

方法一:python爆破

import requests

a = "3abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012456789"
for i in a:
    for j in a:
        url ="http://3fc6f96e-2053-4b6d-b9ad-fb57b16888ec.challenge.ctf.show/?token="+str(i)+str(j)
        req = requests.get(url=url).text
        if "ctfshow" in req:
            print(req)
            exit()
        else:
            print(url)			# 当为3j时出现flag

打开apache,将文件放置WWW文件下,直接本地+php文件名即可
方法二:php运行结果,方法有些像逆向了,用数字来进行MD5加密判断

<?php
for ($i=0;$i<1000;$i=$i+1){
	$token=md5($i);
	if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
        if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
            echo $i;
        }}} ?>  // 422

web24

描述:爆个🔨
Hint:参考PHP随机数的伪随机数 mt_srand(seed); 函数播种 Mersenne Twister 随机数生成器。seed,可选。规定播种值
知识点:同一个随机数种子,生成的随机数序列时一样的序列
脚本抛出后直接就是url/?r=1155388967得到flag

// 题目描述
if(isset($_GET['r'])){
    $r = $_GET['r'];
    mt_srand(372619038);
    if(intval($r)===intval(mt_rand())){			// 上面随机数生成器已经固定了生成序列
        echo $flag;
    }
}
// 脚本 php,产生此种子下的随机数
<?php
mt_srand(372619038);
echo intval(mt_rand());			// 1155388967 这里php版本默认的为7.3.4
?>

web25

描述:爆个🔨,不爆了
推测,当r为0时,产生第一个随机数,我们要通过第一个随机数反推处其生成器,人工时不可能的,通过其它大佬处了解到php_mt_seed的但求解处srand的seed

if(isset($_GET['r'])){
    $r = $_GET['r'];
    mt_srand(hexdec(substr(md5($flag), 0,8)));
    $rand = intval($r)-intval(mt_rand());		// r == 0时,出现第1次rand
    if((!$rand)){			//rand == 0进入
        if($_COOKIE['token']==(mt_rand()+mt_rand())){		// cookie == 第2,3次rand的和
            echo $flag;
        }
    }

求解处seed显示如下,在请求时通过network中标头可知其php版本为7.3.11,再次逐一排查,找到为 seed为488802920
tap1
看php代码,srand的种子已经出来了,直接就是php脚本,跑出第2,3次的rand和

<?php
mt_srand(488802920);
echo mt_rand()."\n";			// 2054037753
echo mt_rand()+mt_rand();		// 800797921

放入hackbar中配置如下,execute执行
/或者直接添加cookie,添加方式传送阵
还有另一种方法就是抓包,wp传送
tap2

web26

描述:这个可以爆
Hint:使用Chrome浏览器抓包,进行暴力破解密码
乍一看,里面室友默认值的
tap1

查看源代码

function check(){
			$.ajax({
			url:'checkdb.php',
			type: 'POST',
			dataType:'json',
			data:{
				'a':$('#a').val(),
				'p':$('#p').val(),
				'd':$('#d').val(),
				'u':$('#u').val(),
				'pass':$('#pass').val()
			},
			success:function(data){
				alert(data['msg']);
			},
			error:function(data){
				alert(data['msg']);
			}

		});
		}

方法一:发现其对传参没有要求,直接传入,得到flag
tap1
方法二:对密码进行爆破,配置同web21,也可以采用数字爆破,不过时间可能有点长
tap2

web27

打开链接,CTFshow菜鸡学院 让我登录,自然没有学号和密码,想办法喽
tap1
下面有学生学籍查询信息,查询需要信息如下
tap2

录取名单下载下来如下图,发现仅仅差了中间的生日,我们可以直接数据进行爆破
tap3

输入姓名,身份证号随便输入18位的数字串即可,BP抓包,配置如下
tap4
开始爆破,出现以下结果,得到了该同学的身份证号
tap5
查询结果如下,即学号为02015237,密码为621022199002015237

tap6
登录后得到flag

web28

描述:大海捞针
Hint:通过暴力破解目录/0-100/0-100/看返回数据包
爆破的时候去掉2.txt 仅仅爆破目录即可
还是数字类型爆破,就不多写了

answer28

web

php的备份文件为,url最末加上/index.php~/index.php.bak,下载文件
answer

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值