flag in flag.php,hgame2019解题记录

“想与你赏流河山川,踏青山风光无限,樵采打渔为生,尽是梦里的人间。”

菜鸡来写wp啦…

Level - Week 1

WEB

谁吃了我的flag

first

根据题目描述,vim、未正常关机…

估计也就是考察vimbak的知识,意外退出时,并不会覆盖旧的交换文件,而是会重新生成新的交换文件。而原来的文件中并不会有这次的修改,文件内容还是和打开时一样。

第一次产生的交换文件名为“.file.txt.swp”;再次意外退出后,将会产生名为“.file.txt.swo”的交换文件;而第三次产生的交换文件则为“.file.txt.swn”;依此类推。

关于这个,我们可以使用xql7的tools扫描下,虽然写的不是很好,有时间改进下…

v44lntd

发现敏感文件,访问之,提示404…

误报严重啊,其实是工具的规则问题..

果断手工找到swp备份地址

curl访问输出之…

4xxn9i2

得到flag

换头大作战

打开后一个输入框,随意输入

提示

request method is error.I think POST is better

使用hackbar的post提交后提示

emmm,只能改xff了

kg48rip

唉..继续改..

13e60fw

呵,B站,看来出题人也是个人才..

看到了admin=0,随手改为1

提交后,flag到手..

very easy web干巴爹

");

$_GET['id'] = urldecode($_GET['id']);

if($_GET['id'] === "vidar")

{

echo $flag;

}

highlight_file(__FILE__);

?>

代码审计啦..

一开始看到strpos和urldecode还以为是数组加二次编码,后来才发现用不到..

大体思路如下:

使用GET方式接收id的参数值与vidar进行比较,如果相同则输出“干巴爹”,若不同‘

则进行url解码,再与vidar进行比较,相同则输出flag

看似是有逻辑问题的,但是,在php中get接收参数时默认会进行一次url解码,然后urlcode

又会进行一次解码,所以我们只需要对vidar中的一个字母进行两次编码即可,

最后的payload如下:

?id=%25%37%36idar

can u find me?

为什么不问问神奇的十二姑娘和她的小伙伴呢

既然这么说了,那就f12

发现f12.php,访问之提示:

yeah!you find the gate

but can you find the password?

please post password to me! I will open the gate for you!

刷新页面在请求里发现password

hackbar提交之,出现click me to get flag

点击提示

aoh,your speed is sososo fast,the flag must have been left in somewhere

感觉像是302跳转,bp抓包查看

得到flag

misc

Hidden Image in LSB

给你脚本了,跑一下就出来了..

送分题..

有个神器叫 stegsolve,利用它可以直接提取本题 flag

打字机

两张图,对照得出flag

Broken Chest

一个压缩包,7z打开失败,扫描提示不是压缩包,binwalk提取发现文件尾,以及

S0mETh1ng_U5efuL

010 Editor打开发现缺少文件头,补齐,打开提示密码,尝试伪加密失败,将得到

的密码输入,得到flag

无字天书

一个数据包分析..

http中下载压缩包,密码不全,

然后不会了…

Level - Week 2

质量直接上一层啊,这代码审计做的我哦…

流下来了没有技术的泪水.jpg

web

easy_php

代码审计..

打开网页,标题处显示robots信息,访问得到/img/index.php这个路径

访问得到如下代码

enxn2um

思路很明确,文件包含,绕过../去访问flag.php,str_replace有漏洞,….//或者…/.

/都可以绕过,然后伪协议读源码

payload如下:

php trick

很单纯的代码审计加ssrf(可能不太准确)

打开后

ljqjdh9

没什么难的依次绕过就行了..

就行了..

行了..

了.

推荐down下来在本地做,不然容易乱…

先上payload:

首先两个字符串不等、md5值相等,使用md5碰撞即可,再往下使用!==进行判断,使用数组或者url编码的形式绕过,接着str5里面不能有H_game,使用.绕过,这是php特性,然后str5不为数字且大于999999999,可以使用数组、%20、%00、1a进行绕过,然后下面其实可以说是一个ssrf,构造url参数,里面需要有www.baidu.com ,http,还记得前面的admin.php吗?我们可以获取他的值,因为访问后知道他需要127.0.0.1访问,使用十六进制构造,这是ssrf的基操,然后得到admin的源码,在使用admin.php中的filename进行读取flag.php的内容,获取到flag

Level - Week 3

越来越不会…

web

BabyXss

开局一个框,后期全靠fuzz,本来是想直接fuzz的,可是fuzz出来的几个发现不能用,于是手工构造payload

PC9kaXY+PHNjcmlwdCBzcmM9InhzcundefinedundefinedwNaNAiPjwvc2NyPHNjcmlwdD5pcHQ+

ps:自行base64解码一些,不然博客样式会出问题

验证码使用脚本跑:

#!/usr/bin/env python

import hashlib

def md5(s):

return hashlib.md5(s).hexdigest()

for i in range(1, 9999999):

if md5(str(i)).startswith('00d9'):

print i

sqli-1

一个简单的md5验证。

提交正确的code参数后得到提示 sql error。

同时提交一个id参数得到回显。

然后测试即可,

sqli-2

盲注版本,由于只会告诉你sql语句是否执行,所以bool盲注显然不行。

可以使用时间盲注

Payload :

1 and if((1=2),exp(999999999),1)#

基础渗透

首先存在文件包含

然后

在messge_id处进行注入。

我们先随意上传一张图片,让他生成一个文件名。

通过python脚本,进行注入得到文件名。

Ps:注入时需要有留言存在,所以编写脚本时每次注入前先进行留言。

token会失效,所以每次注入前获取一次最新的token。

文件包含处强制拼接了php后缀

将一句话木马文件index.php压缩成一个zip,抓包修改type为 image/png将zip文件上传。然后利用phar协议包含文件getshell。

?action=phar://./img/avatar/xxxxx.png/index

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值