2024.03.31考核Web部分 writeup
1. Web1
考察点:burpsuite使用、http基本信息
打开实例,可以看到一个网页:
查看源码、cookie后无果,发现当前网页文件为inbex.php,与平常做题时默认访问的页面index.php不同,故在网址栏访问index.php。
发现无论怎么访问,页面都会回到inbex.php。此时需要使用burpsuite抓包工具进行操作:
(1)浏览器开启代理并访问index.php,bp抓到包,并将信息发送到重放器。
(2)通过重放器重新发送信息,可以看到flag。
附题目源码分析:
<?php
header("Flag: TYCTF{testflag}"); //该flag仅为示例
header('Location:inbex.php')
?>
header方法将传入的内容写入http页面的头部信息中,即上图中响应部分。
Location参数会指定访问该网页时会跳转到哪一个地方,此处意为访问index.php时会自动跳转回inbex.php中。
2. Web2
考察点:js源码审计
打开实例有一个2048游戏界面,众所周知一般情况下web题的游戏都是有捷径的,故审计网页源代码。
网页源代码无有用的内容。
css代码无有用的内容。
js文件中发现一段有用的内容,意为达到对应的分数后再页面弹出警告框,框中的内容可能为flag。
将这段代码放入浏览器控制台,回车解码得到flag。
3. Web3
考察点:简单的文件上传、一句话木马编写、burpsuite抓包
看到文件上传页面,首先测试是否有过滤:
只允许上传上述文件类型,则我们尝试先在文本文档中写入一句话木马,再使用burpsuite抓包更改文件后缀。
将文件后缀txt改为php,后放行,回到页面发现上传成功。
根据题目提示给出的文件上传路径,使用蚁剑连接shell,并拿到flag。
4. Web4
考察点:php反序列化、php伪协议、魔术方法利用、遍历文件和读取文件类的利用
源码分析:
<?php
highlight_file(__FILE__);
class a{
public $un0;
public $un1;
public $un2;
public $un3;
public $un4;
public function __destruct(){
if(!empty($this->un0) && empty($this->un2)){
$this -> Givemeanew();
if(