MISC
签到题
扫码关注微信公众号即可获得flag
这是一张单纯的图片
用UE打开如图,在ascii码最下面发现一串编码,发现是字符实体编码。
https://www.qqxiuzi.cn/bianma/zifushiti.php
网站在线解码可得flag
隐写
打开图片,先用stegsolve跑一边没有发现什么,LSB也没有什么,用UE打开也没有什么奇怪的。用binwalk跑一边,没有隐藏文件。
所以考虑是不是高度修改,在IHDR后面将高度改大一些,果然发现flag
## telnet
用wireshark打开流量包,在telent包的data中发现flag
眼见非实(ISCCCTF)
下载文件后,用UE打开发现是PK开头,则是zip压缩包
改后缀后解压得到一个docx文件,猜测可能是zip包。
docx文件本质上就是一个zip压缩包,文件内容在zip压缩包中(文本内容,字体格式等等)。
改后缀为zip后打开
发现一些文件,没有明显的flag信息,但应该就在这些文件里。
一个个用firefox打开,F3快速查找。
得到flag.
啊哒
下载后发现是jpg文件,可能不是LSB隐写(png才有lsb隐写),用stagsolve跑了一下果然没有。用UE打开发现文件比较大,可能有藏东西。
用binwalk跑一下,果然有zip文件。
而且就是flag.txt
在UE中搜binwalk中给出的偏移量,或者直接用UE搜jpeg文件的结尾FF D9
将FF D9后面的另存为zip文件,打开后发现需要密码。
返回去看ada.jpg的文件属性,发现有一个16进制编码
使用notepad++的插件16进制转ascii得到密码
解压得flag
猜
题目提示是某人名字全拼,下载得到的是半截的明星照片,应该可以通过更改PNG的IHDR来得到完整的照片。
不过可以直接拖到百度识图,得到名字为刘亦菲
则flag就是key{liuyifei}
闪的好快
下载是一个快速闪动的gif图片,用stegsolve可以分离出每一帧,然后逐个扫码就得flag。
又一张图片,还单纯吗
用binwalk跑一遍,发现有隐藏的jpeg图片。
用winhex分离出来,得到flag(选的第一个jpeg的偏移量到末尾)
隐写2
用binwalk跑一边,发现有zip压缩包
用winhex提取出来,发现有提示密码是三位数,下面还有一长段话,不过知道密码是三位数就好了
将加密的flag.rar用UE打开发现是pk开头,应该是zip包,则改为zip后,用爆破工具解密
得到密码871
解压后得到一个图片,再用UE打开后,在ascii末尾得到flag
不过似乎是base64加密,再用notepad++解密一下就好
多种方法解决
下载解压后是一个exe文件,但是打不开,用UE打开后发现是base,而且应该是图片
则用在线转换,得到二维码
扫码得flag
宽带信息泄露
提示宽带信息泄露,而且是bin文件,则用RouterPassView打开
提示flag是用户名,则搜索username得flag
白哥的鸽子
文件名是jpg,并用UE打开后是FF D8开头,则就是jpg文件,改后缀后可打开图片
用binwalk跑一遍,没有隐藏文件,用UE打开后在ascii最后发现类似flag的字符串
猜测是栅栏密码,用解密工具解密
come_game
下载得文件是一个exe游戏,玩了一下,,发现不可能正常通过。
然后退出发现文件夹中多了save文件和deathtime文件。应该是存档和死亡次数。
修改存档数据应该可以通关,然后发现save文件中的数字对应关卡数
改到5时得到flag
提交发现不对,可能是16进制,再用notepda++转码
不对。。。。。
百度发现格式是SYC不是flag…
隐写3
打开后是半截大白图片,而且是PNG图片,应该可以修改IHDR高度
IHDR后的的第一个4byte是宽,第二个4byte是高。
改到1D0时,出现flag
WEB
web2
网页是不断飞来的滑稽,还越来越快。。
右键打不开源代码,用firefox的F12打开查看器。
发现flag
计算器
进入网页发现是一个数字计算验证码,只能输入一位数。
打开源代码后,发现设置输入最大长度是1
firefox用F12打开查看器后就可以修改前端html参数了
得到flag
web基础$_GET
打开网页后阅读这段php代码就知道用get方式穿参数what=flag就能得到flag
get方式直接在url后面传参
得到flag
web基础$_POST
这段php意思是用post方式传参what=flag就能得到flag
用firefox的hackbar插件传参
得到flag
矛盾
查找is_numeric函数
则这段php的意思是num既要不是数字又要是1
由于php的==是弱类型比较,即在比较时会将字符串类型化为相同再进行比较,当字符串开始部分是合法的字符,则使用此字符,若不合法,则其值为0
故可以构建payload:num=1x
得到flag
web3
选择不允许创建更多对话框后,查看源代码。
在最下面发现一串HTML实体编码
在线解码得到flag
域名解析
题目说把 flag.baidu.com 解析到123.206.87.240 就能拿到flag
修改hosts文件,把flag.baidu.com和123.206.87.240关联起来
再访问flag.baidu.com就能得到flag
你必须让他停下
网页不断刷新,有一定几率刷出图片。
当没有图片的时候右键查看源代码,提示flag is here
当图片刷出来时候查看源代码,得到flag
或者用burpsuit不断gogogogo
变量1
阅读这段代码可知,用get方式传参args,并且必须是字母数字下划线。
题目提示flag在变量中,则用var_dump打印出超全局变量$GLOBALS的信息,即是打印所有变量信息。
令 a r g s = G L O B A L S 则 有 v a r d u m p ( args=GLOBALS则有var_dump( args=GLOBALS则有vardump(GLOBALS);
get传参
得到flag
web5
右键打开源代码,发现有一段类似brainfuck编码,拖去解码了下解不开,又根据题目提示,应该是JSFUCK编码
firefox的consol解析不了,用chorme的consol可以解析。
得到flag
头等舱
打开页面,什么也没有。
右键打开源代码,还是什么也没有。
用burpsuit抓包
发现flag
网站被黑
页面抓包没有发现什么信息,源代码也没有什么信息。
提示实战常用,那就用御剑扫后台
打开shell.php,是一个webshell
要输入密码,尝试用burpsuit爆破
得到pass=hack
输入得到flag
管理员系统
打开页面是一个登录界面,尝试admin登录,提示ip禁止访问
查看源代码,在最后面发现了base64加密字符串
解密后是test123,可能是密码或者用户名
绕过ip过滤要用X-Forwarded-For
用burpsuit抓包后添加X-Forwarded-For;127.0.0.1
X-Forwarded-For表示客户端原始地址
127.0.0.1表示本地机(127开头的都是本地回环地址,表示本地虚拟接口)
然后尝试test123是用户名和密码
发现不对
试试用户名为admin,得到flag
web5
打开页面提示查看源代码,那就看源代码。
显然有加密的内容,百度搜一下,是escape加密,用unescape函数就可以解密
直接将源代码中eval改为alert
运行
整理后
将id为levelquest的元素的onsubmit属性设置为checksumit
既是当提交levelquest表单的时候,运行checksubmit函数
函数checksubmit的意思是选取id为password的元素,当它的数据类型不为undefined,并且值为67d709b2b54aa2aa648cf6e87a7114f1时,return!0
否则提示error,光标聚焦
更改输入框的id 为password,然后在输入框输入67d709b2b54aa2aa648cf6e87a7114f1
得到flag
flag在index里
提示flag在index里,打开index.php还是这个页面。
点击’click me’后,从url猜测有文件包含漏洞
则用php://filter读取index.php的源码
构造file=php://filter/read=convert.base64-encode/resource=index.php
其中read=convert.base64-encode是将index.php的源码进行base64加密
得到index.php源码的base64加密
解密后得到源码
得到flag
点击一百万次
打开页面是一个图片,点击后上方的goal就会加一
提示javascript,则用F12打开源码找到javascript代码
由js代码可知用post方式传参clicks=1000000就能得到flag
得到flag
welcome to bugkuctf
习惯性右键打开源代码,发现了php代码
这段代码的意思是用get方式传参到user,file,pass,当user不为空,并且user中的值是welcome to the bugkuctf时,输出hello admin,并且包含file中的文件。
file_get_contents()函数的意思是将一个文件内容读入字符串中,则user必须是文件,可以用伪协议php://input作为文件名,然后post数据作为文件内容。
成功
然后include()存在文件包含漏洞,用php伪协议php://filter读取文件hint.php的源码
构造file=php://filter/read=convert.base64-encode/resource=hint.php
得到源码
base64解码
发现有__tostring()魔术方法,此魔术方法是当Flag类对象被当作字符串使用时(如echo时)触发。
当类Flag中的的file存在时,将file文件的内容以字符串形式输出,并且输出good。
由提示flag.php,则应让类Flag中的file等于flag.php,即可得到flag.php中的信息
再获取index.php
由index.php的内容
可以get传参file=hint.php,即把hint.php包含进来
然后构造Flag对象,将对象中的file设为flag.php,再将此对象序列化后,传参进password
得到
构造txt=php://input&file=hint.php&password=O:4:“Flag”:1:{s:4:“file”;s:8:“flag.php”;}
得到flag
本地包含
有一个很危险的eval()函数,则可以构造任意命令执行
(1)任意命令执行构造为文件包含
构造payload为
?hello=1);include($_POST[cmd]);var_dump(1
即先将var_dump闭合,然后造成eval($_POST[cmd]);,最后再将var_dump的后括号闭合
然后就可以POST命令了
构造POST的payload为
cmd=php://filter/read=convert.base64-encode/resouce=flag.php
点击execute得到回显
base64解码得flag
,,应该是flag{bug-ctf-gg-99}
(2)直接执行命令show_source()回显flag.php内容
构造payload为
?hello=1);show_source(“flag.php”);var_dump(1
得到flag
输入密码查看flag
提示五位密码,很明显可以用Burpsuit进行爆破
设置好服务器代理后,输入测试密码11111,点查看后burpsuit抓到了包
右键send to in intruder,position中选sniper,然后clear , 选 中 密 码 的 p a y l o a d , a d d ,选中密码的payload,add ,选中密码的payload,add,
设置set1,题目提示为5为数,则选payload为numbers,
设置从00000到99999,每次递进为1,位数为5
这里注意每输入一个值都要回车才能确认输入,注意下面的example
然后在option中设置线程数,
这里我觉得越大越好,最高可以设置127,那就127吧
过了一会点一下length,一般和其他不一样的就是正确密码了
在response中直接可以看到flag
备份是个好习惯
试了一下,这一串既不是base64也不是hex
根据题目,备份就是bak文件
试试访问index.php.bak
访问后会下载index.php.bak文件
将index.php.bak改为index.php即可打开文件
代码解析,
只包含一次flag.php
设置php.ini中的dispaly_errors为0
将当前url中的?与其后面部分赋给$str
将?后面部分赋给$str
将$str中的key替换为空,即删掉
将$str中的查询字符串解析到变量中,如key1
输出md5加密的key1与key2
若key1与key2不相等且key1与key2的md5值相等,则输出flag
md5无法解析数组,数组的md5值为NULL,
以此实现最后一个if
可构造key1[]=flag且key2[]=flagg
但是这样会被上面的str_replace()将key删掉,对此可以构造kekeyy来绕过
则构造payload为
?kekeyy1[]=flag&kekeyy2[]=flagg
访问/index.php?kekeyy1[]=flag&kekeyy2[]=flagg
得到flag
成绩单
很明显是sql注入,测试1可以返回,1’不能返回,1‘#正常返回,则可以注入。
先用order by确定有几列数据
测试发现4可以,5不行,则一共有4列。
明显只能输出一组内容,所以要将前面的查询数据置为空,写0。
测试0’ order by 1,2,3,4# 可以返回
则开始查看数据库名,数据库版本,用户名,操作系统
0’ union select database(),version(),user(),@@version_compile_os#
再查看skctf_flag数据库的表
0’ union select 1,2,table_name,table_schema from information_schema.tables where table_schema=‘skctf_flag’#
再查看fl4g表中的列名
0’ union select 1,column_name,table_name,table_schema from information_schema.columns where table_schema=‘skctf_flag’ and table_name=‘fl4g’#
可以查看列的内容了
0’ union select 1,2,3,skctf_flag from skctf_flag.fl4g#
加密
滴答~滴
显然是摩斯密码,工具解密
聪明的小羊
显然是栅栏密码,工具解密
ok
是ook编码,在线解码
https://www.splitbrain.org/services/ook
这不是摩斯密码
是brainfuck编码,在线解码
https://www.splitbrain.org/services/ook
easy_crypto
猜测是摩斯密码,对于密码表,发现0对于.
写一个php脚本来转换
得到标准摩斯密码
拿去工具转码,有些字符没有转换成功
再去在线转码
有一些字符被转为javascript的escape编码,再用javascript转一下
是花括号
则flag为flag{m0rse_code_1s_interest1n9!}
简单加密
密文后面有两个AA可能是base64的==
用c看了一下,差4。再用c转一下
是base64,用工具转码得到flag
散乱的密文
开始以为是凯撒密码,仔细一看不太可能因为有数字5
提示2 1 6 5 3 4是置换密码的密钥
不过这个是横着的。。
得到
凯撒部长的奖励
显然是凯撒加密,直接拿去工具跑一下
发现一个读的通的结果,既是flag
+[]-
显然是brainfuck,在线解码
得到flag
.!?
是ook编码,拿去在线解码
一段Base64
是base64,解密后
是escape加密,解密后
是16进制,解密后
是unicode,解密后
是javascript的String.fromCharCode方式
解密得html实体
解密得
还是,在解密
得到flag
flag{ctf_tfc201717qwe}
社工
密码
弱密码,名字加生日。
KEY{ZS19970315}
信息查找
去google搜“今日头条 bugku.cn",得到
打开第一个网页,可能是这个群号
flag就是KEY{462713425}