BugkuCTF笔记(持续更新)

WEB2

听说聪明的人都能找到答案!
在这里插入图片描述
打开看一眼,我是不是聪明的人。
在这里插入图片描述
满屏猥琐表情,并且建议大家可以尝试看到最后。
在这里插入图片描述
看这一堆猥琐表情是看不出什么来了,还是看看源代码吧。
在这里插入图片描述
body头里注释里静静的躺着大写的flag
在这里插入图片描述
flag KEY{Web-2-bugKssNNikls9100}
提交一下是不是可以通关。OK解决。
在这里插入图片描述
因为我以前做过,所以它会显示you already solved this你已经解决这个问题了。

计算器(随机数字验证码)

这次没有什么任何提示,就是计算器三个字。不妨猜一猜是不是算加减乘除。
在这里插入图片描述
标题是随机数字运算验证码
在这里插入图片描述
打开一看,好像下意识的去计算一下。
在这里插入图片描述
58+40=98 输入一下
只让我输入1位数…
在这里插入图片描述
我们改一下代码,把长度加一下。
在这里插入图片描述
在输入,确认一下。
果然和题目一样,真的是计算器计算一下。
在这里插入图片描述
flag{CTF-bugku-0032}
OK,去验证一下。
在这里插入图片描述
搞定!

web基础_GET

看提示,猜想是通过GET来进行获取到flag的关键点。
在这里插入图片描述
进去看看,一串代码。
大体意思是如果what在GET里传输并且what=flag才可以输出这个flag
如果不懂代码建议自己去学习吧,我也没办法~
在这里插入图片描述
我们直接在URL里进行输出
what=flag
在这里插入图片描述
flagflag{bugku_get_su8kej2en}
输入我们进行验证一下。
在这里插入图片描述
OK!解决。

web基础_POST

看提示,应该和前一关的GET一样,这次在POST输出。
在这里插入图片描述
我们进去看一看
果然一样的,我们在post里进行what=flag
在这里插入图片描述
成功获取到flag
在这里插入图片描述
flag{bugku_get_ssseint67se}
我们放进去验证一下。
在这里插入图片描述
OK!搞定。

矛盾

查看提示,矛盾,估计是挺矛盾的。
在这里插入图片描述
打开看一眼
在这里插入图片描述
看代码意思,就是不能是数字但是还得是1才能输出,是挺矛盾的。

$num=$_GET['num'];//GET获取值
 if(!is_numeric($num))//判断num是否为数字,如果不是则输出num的值
 {
 echo $num;
 if($num==1)//如果num=1则输出flag
 echo 'flag{**********}';
 }

我们直接输入1随便加个字母试试。
在这里插入图片描述
flag直接出来了…
flag{bugku-789-ps-ssdf}
拿去验证一下
在这里插入图片描述
OK!搞定。

WEB3

看提示,简单粗暴。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
就这两句话,无限循环…还是看看源码吧。
翻到最后,可算看到不一样的地方了。
在这里插入图片描述
KEY{J2sa42ahJK-HS11III}
这里是个html编码,需要解下码。
直接给默认解了。
在这里插入图片描述
KEY{J2sa42ahJK-HS11III}
验证一下试试。
在这里插入图片描述
OK!搞定!

域名解析

看提示,直接告诉我们获取方式了。
把 flag.baidu.com 解析到123.206.87.240 就能拿到flag
在这里插入图片描述
windows下文件在C:\Windows\System32\drivers\etc\hosts
在这里插入图片描述
这个地方修改时,win10无权限。
参考一下这边篇文章
https://www.cnblogs.com/ECJTUACM-873284962/p/8858384.html
notepad hosts打开hosts文件
在这里插入图片描述
添加把 flag.baidu.com 解析到123.206.87.240 就能拿到flag
在这里插入图片描述
访问flag.baidu.com
在这里插入图片描述
KEY{DSAHDSJ82HDS2211}
验证一下。
在这里插入图片描述
OK!搞定。

你必须让他停下

看提示,你必须让他停下。
在这里插入图片描述
打开之后一只在跳啊跳。
在这里插入图片描述
查看源码发现至少有10几张图片来回跳,每一次都不一样。
在这里插入图片描述
就连续打开了10几次,然后在10.jpg上看到了flag
在这里插入图片描述
flag{dummy_game_1s_s0_popular}
拿去验证一下
在这里插入图片描述
OK!搞定。

本地包含

看提示,这是一个本地包含漏洞。
在这里插入图片描述
打开看一眼。
直接出错了。换了浏览器也不行。估计是有问题了。
在这里插入图片描述
这里给大家找一篇文件参考一下吧。
https://blog.csdn.net/dyw_666666/article/details/82389457
最后flag是
在这里插入图片描述

变量1

看提示,flag应该是在变量里了。
在这里插入图片描述
打开看一眼。
函数。如果看不懂的话,建议去学一下代码了。
在这里插入图片描述
这个地方正则匹配只能大小写字符和数字。
eval(“var_dump($$args);”);打印出变量的值,利用超全局数组 GLOBALS 可以打印出所有变量。
构造完就是
php?args=GLOBALS
在这里插入图片描述
flag{92853051ab894a64f7865cf3c2128b34}
拿去验证一下。
在这里插入图片描述
OK!搞定。

web5

看提示JSPFUCK???答案格式CTF{**} 字母大写
在这里插入图片描述
进去看一眼。
在这里插入图片描述
jsp 源代码看一下一大堆
在这里插入图片描述
直接扔控制台
在这里插入图片描述
ctf{whatfk}
我们直接输入一下。显示非常非常接近了。
在这里插入图片描述
想起前面的提示我们换成大写试试CTF{WHATFK}
答对了。
在这里插入图片描述
OK!搞定。
在这里插入图片描述

头等舱

观察提示 头等舱… 头?等?舱?
在这里插入图片描述
查看一下,什么也没有…
在这里插入图片描述
看下源码,真的是什么都没有。
在这里插入图片描述
提示是头等舱,难道在http包里哪个地方?
包里也没有。
在这里插入图片描述
响应???
在这里插入图片描述
flag{Bugku_k8_23s_istra}
果然在这里,花式藏flag。看自己脑洞了…
在这里插入图片描述
OK!搞定。

Website is black

看提示,这个题没技术含量但是实战中经常遇到。
在这里插入图片描述
进去看了一眼,很炫酷,webshell的话我们直接扫目录看看能不能扫到shell。
在这里插入图片描述
目录扫描。
看到shell了。
在这里插入图片描述
要密码,直接bp吧,这密码咱也不知道。
在这里插入图片描述
bp完活,密码是hack,flag也直接出来了。
在这里插入图片描述
flag{hack_bug_ku035}
在这里插入图片描述
搞定。
在这里插入图片描述

管理员系统

看提示,是个管理员系统。flag格式应该是要自己构造下。
在这里插入图片描述
进去看一看吧。
登录框,admin,admin输入试一下在这里插入图片描述
禁止访问,直接记录IP
在这里插入图片描述
这样的话,我们爆破都没法爆破。这就需要用到X-Forwarded-For:127.0.0.1
放了下百度百科。看不明白可以在去百度下。
在这里插入图片描述
我们随便输入用户名密码添加X-Forwarded-For:127.0.0.1进行爆破。
在这里插入图片描述
用户名:admin密码:test123
The flag is: 85ff2ee4171396724bae20c0bd851f6b
根据提示的flag格式,我们进行构造。
flag{85ff2ee4171396724bae20c0bd851f6b}
在这里插入图片描述
OK!搞定。

web4

看提示,让我们看看源代码。
在这里插入图片描述
那我们进去直接看一下源代码吧。
很明显,这一堆url编码肯定有东西。
在这里插入图片描述
解码
在这里插入图片描述
解完是这样,咱们在分析分析。
var p1 = ‘function checkSubmit(){var a%3ddocument.getElementById(“password”)%3bif(“undefined”!%3dtypeof a){if("67d709b2b’;
var p2 = ‘aa648cf6e87a7114f1"%3d%3da.value)return!0%3balert(“Error”)%3ba.focus()%3breturn!1}}document.getElementById(“levelQuest”).onsubmit%3dcheckSubmit%3b’;
eval(unescape(p1) + unescape(‘54aa2’ + p2));
这有一段类似于提示eval(unescape(p1) + unescape(‘54aa2’ + p2));把他拼一下。
在这里插入图片描述
拼起来是这样的,我们放进去试一试。67d709b2b54aa2aa648cf6e87a7114f1
在这里插入图片描述
OK!flag直接出来了。
KEY{J22JK-HS11}
在这里插入图片描述
OK!搞定。

flag在index里

看提示,又好明显的意思,flag在index里。
在这里插入图片描述
打开看一下。
很明显可以点。
在这里插入图片描述
点完就出了个test5,但是URL里看到了一个熟悉的参数,file。
在这里插入图片描述
构造出?file=php://filter/read=convert.base64-encode/resource=index.php,以base64编码。
php://是一种协议名称,php://filter/是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resource=index.php表示目标文件为index.php。
在这里插入图片描述
PGh0bWw+DQogICAgPHRpdGxlPkJ1Z2t1LWN0ZjwvdGl0bGU+DQogICAgDQo8P3BocA0KCWVycm9yX3JlcG9ydGluZygwKTsNCglpZighJF9HRVRbZmlsZV0pe2VjaG8gJzxhIGhyZWY9Ii4vaW5kZXgucGhwP2ZpbGU9c2hvdy5waHAiPmNsaWNrIG1lPyBubzwvYT4nO30NCgkkZmlsZT0kX0dFVFsnZmlsZSddOw0KCWlmKHN0cnN0cigkZmlsZSwiLi4vIil8fHN0cmlzdHIoJGZpbGUsICJ0cCIpfHxzdHJpc3RyKCRmaWxlLCJpbnB1dCIpfHxzdHJpc3RyKCRmaWxlLCJkYXRhIikpew0KCQllY2hvICJPaCBubyEiOw0KCQlleGl0KCk7DQoJfQ0KCWluY2x1ZGUoJGZpbGUpOyANCi8vZmxhZzpmbGFne2VkdWxjbmlfZWxpZl9sYWNvbF9zaV9zaWh0fQ0KPz4NCjwvaHRtbD4NCg==
解码一下。

<html>
    <title>Bugku-ctf</title>
    
<?php
	error_reporting(0);
	if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
	$file=$_GET['file'];
	if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
		echo "Oh no!";
		exit();
	}
	include($file); 
//flag:flag{edulcni_elif_lacol_si_siht}
?>
</html>

flag直接出来了。
在这里插入图片描述

输入密码查看flag

看提示,输入密码查看flag,看起来挺简单的。
在这里插入图片描述
进去看一下。
看样子很明确了,这就是5位数bp了。
在这里插入图片描述
上字典进行bp吧。
在这里插入图片描述
密码13579,flag直接出来了。
在这里插入图片描述
flag{bugku-baopo-hah}
在这里插入图片描述

点击一百万次

看提示,好像意思是javascript改为1000000才可以。
在这里插入图片描述
进去看一眼。
又炸裂了。不知道哪位大哥又搞炸了。
在这里插入图片描述
只能去百度一下以前的大佬写的稿子了。
推荐资料:
https://blog.csdn.net/weixin_43578492/article/details/95525371
https://www.cnblogs.com/0yst3r-2046/p/10745979.html
总结起来就是2种方法。
1.F12,选择控制台,然后输入clicks=1000000,然后回车,再点击一下网站那个图案,发现得到了flag
2.用POST提交cllicks=1000000,得到flag。
falg{Not_C00kI3CI1ck3r}
在这里插入图片描述

备份是个好习惯

看提示,听说备份是个好习惯,这个意思看来就是线索在bak备份文件里了,直接拿御剑跑一跑。
在这里插入图片描述
找到了
在这里插入图片描述
下载下来看一看
在这里插入图片描述
分析下意思。
将get的两个参数中的key替换为空(这里可以用kekeyy绕过)
然后对key1,key2的值进行md5加密,并进行比较,
如果md5加密的值一样而未加密的值不同,就输出flag。

<?php
/**
 * Created by PhpStorm.
 * User: Norse
 * Date: 2017/8/6
 * Time: 20:22
*/

include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);

echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
}
?>

在这里插入图片描述
Bugku{OH_YOU_FIND_MY_MOMY}
在这里插入图片描述

成绩单

看提示,快来查查成绩吧。
在这里插入图片描述
进去看一下,这是个很典型的SQL注入。
在这里插入图片描述
应该手工就可以出来,我直接拿SQLmap跑了。
首先抓包保存一下。
在这里插入图片描述
掏出工具开始跑。
python2 sqlmap.py -r 1.txt -p id --current-db
-r打开这个1.txt文件
-p指定参数这个id
看到一个库 skctf_flag
在这里插入图片描述
python2 sqlmap.py -r 1.txt -p id -D skctf_flag --tables
表里有个f14g
在这里插入图片描述
python2 sqlmap.py -r 1.txt -p id -D skctf_flag -T fl4g --column
看一下f14g表中有什么数据。
在这里插入图片描述
python2 sqlmap.py -r 1.txt -p id -D skctf_flag -T fl4g -C skctf_flag --dump
在看一下skctf_flag中的值就应该能拿到flag了。
在这里插入图片描述
出来了BUGKU{Sql_INJECT0N_4813drd8hz4}
在这里插入图片描述

秋名山老司机

看提示,是要飙车。
在这里插入图片描述
进去看看,请在2秒内计算出老司机车速。
在这里插入图片描述
人工手算肯定是算不出来了,只能写代码了,代码烂的一批。
参考了一下人家的代码。

import requests
import re
url = 'http://120.24.86.145:8002/qiumingshan/'
s = requests.Session()
source = s.get(url)
expression = re.search(r'(\d+[+\-*])+(\d+)', source.text).group()
result = eval(expression)
post = {'value': result}
print(s.post(url, data = post).text)

emmmmm不知道为啥,我现在跑不出来了…
网上大佬们发的过关技巧也都是写代码跑。
推荐资料
https://www.cnblogs.com/yuluoluo/p/9783400.html
https://www.jianshu.com/p/b0a5d72c8bae
https://blog.csdn.net/second_dream99/article/details/86703327
最终flag是Bugku{YOU_DID_IT_BY_SECOND}
在这里插入图片描述

速度要快

看提示,就四个字,速度要快!!!!!!
在这里插入图片描述
进去查看源码
让我们POST一个参数margin
在这里插入图片描述
响应头里直接有个flagb64编码,我们解一下码,看看。
在这里插入图片描述
直接说我跑的不错,给我flag,真的假的。
在这里插入图片描述
去试试。KEY{MTg3NjAw}
直接过了…
在这里插入图片描述
百度了一下,还是给参考资料吧,不知道是靶场出问题了,还是太幸运。
资料
https://blog.csdn.net/qq_42777804/article/details/90314875
https://blog.csdn.net/weixin_43784056/article/details/84483152

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值