抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

信息搜集补充
网页源码,burpsuite,robots.txt,phps源码泄露,扫源码,版本控制( git代码泄露(url/.git/index.php),url/.svn/),vim缓存(index.php.swp),cookie,使用nslookup命令查看DNS记录(nslookup -qt=txt) ,通过dns检查https://zijian.aliyun.com/,网上公开信息可能为管理员登陆密码,技术文档敏感信息,源码透漏重要信息,得到重要(editor)信息通过此功能遍历目录,邮箱查询地址,测试用的探针(/tz.php雅黑php探针),ping找真实ip地址,js脚本


web 21

进去显示需要登陆才可以,这时我们需要用户名密码爆破,我们先输入万能用户名密码登陆抓包。

这里的用户名密码进行了base64编码。将它发到爆破模块。添加需要攻击的区域。然后将payloadspayload type设置为Custom iterator然后添加字典。

position 1

position 2

position 3 我用的是给的密码字典

然后还要进行base64编码

除此之外还要排除Payload Encoding

最后可以设置下线程,进行爆破,之后找到200状态码即可。


web 23

使用了MD5加密,试试MD5部分爆破

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date: 2020-09-03 11:43:51
# @Last Modified by: h1xa
# @Last Modified time: 2020-09-03 11:56:11
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/
error_reporting(0);
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;
}
}
}else{
highlight_file(__FILE__);
}
?>

写个php脚本跑起来。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$token='123';
while(true){
$t=$token;
$token=md5($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 "over!"."<br>";
echo $t;
break;
}
}
}
highlight_file(__FILE__);
?>

这样就可以跑出来成立的token并输出,然后使用输出的token值就可以得到flag。


web 24

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 <?php
/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date: 2020-09-03 13:26:39
# @Last Modified by: h1xa
# @Last Modified time: 2020-09-03 13:53:31
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/
error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){
$r = $_GET['r'];
mt_srand(372619038);
if(intval($r)===intval(mt_rand())){
echo $flag;
}
}else{
highlight_file(__FILE__);
echo system('cat /proc/version');
}
?>

这时一个伪随机数,这里使用了mt_srand(seed)函数设定了一个seed种子,有了种子之后,靠mt_rand()生成随机数。但是从php 4.2.0版本开始,随机数生成器自动播种,因此没有必要使用该函数播种,并且如果设置了seed参数,那么生成的随机数就是伪随机数,意思就是每次生成的随机数是一样的。在本题中

1
2
3
4
<?php
mt_srand(372619038);
echo (mt_rand());
?>

生成的是1155388967,因此给r赋此值就得到了flag。这里要注意生成伪随机数的php版本。


web 25

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date: 2020-09-03 13:56:57
# @Last Modified by: h1xa
# @Last Modified time: 2020-09-03 15:47:33
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/
error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){
$r = $_GET['r'];
mt_srand(hexdec(substr(md5($flag), 0,8)));
$rand = intval($r)-intval(mt_rand()); //这里并不能判断mt_rand的值。
if((!$rand)){
if($_COOKIE['token']==(mt_rand()+mt_rand())){
echo $flag;
}
}else{
echo $rand;
}
}else{
highlight_file(__FILE__);
echo system('cat /proc/version');
}
?>

他是先将flag进行MD5编码,再取前八位进行十进制转换。下面有$rand我们可以利用它得到伪随机数。

这里** 星2 **结果并没有拿到flag,看了提示之后发现,使用函数mt_srand(seed)确实得到的是伪随机数,但是再同一环境下同时拿多个随机数他们每一个是不一样的,虽然是固定的,所以我们在这里是不能相加的。所以我们拿不到seed值的话很难拿到他的第二个伪随机数。

这里找大佬博客有一个php_mt_seed-PHP mt_rand()种子破解程序https://www.openwall.com/php_mt_seed/ 建议放在linux跑 这里会跑出多个seed我们要一个个去试。。。。最后拿到相加结果并添加到cookie的token里面。

这样就可以拿到为随机数。


web 26

这里是一个登陆页面,上面也有一些默认提供的信息。先试试抓包。返回错误

这时先试试密码破解。然后爆破成功,得到flag。

除此之外,还有一种解法!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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']);
}
});
}

查看网页源代码可以看到这样一段代码,可以看到一个url。搜索然后burp抓包。

这里说要进行post传参,并且要设置数据。

之后就会返回flag。


web 27

页面除有学号密码之外,还有登陆名单和学生学籍查询系统。

在录取名单上面有身份证的出生年月日进行了打码。

再看下面的信息查询系统可以判断是在这里爆破。

但是这里使用burpsuite抓包抓不到。。。尴尬。在火狐里面同样也找不到,但是网页源码有一个post请求页面。

这里可以像web 26一样构造post传参,也可以使用google浏览器,google浏览器可以抓到checkdb.php页面

用burpsuite抓包,进行身份证号爆破。

设置时间爆破方式,设置线程,再进行爆破。

得到学号和默认密码,登陆得到flag。


web 28

访问之后直接跳到了别的目录,然后只有一个flag在哪。。。看了请求头和返回头只有个跳转信息,没有什么有用的信息。说的是大海捞针,因该是遍历一遍吧

那就爆破目录。

然后设置payload,payload1payload2,两个一样

然后这只线程进行爆破。

得到flag。

评论