BABYBYPASS

 先贴代码:    

①限制字符长度35个
②不能使用英文字母和数字和 _ $  

最后提示有个getFlag()函数,从这个函数入手。

我们的第一思路是直接eval执行getFlag函数,但是这里过滤了 _ $ 无法通过异或的方法构造变量,下一篇博客有这样的题目
所以最终这道题目思路是通过eval函数执行系统命令,查看index.php。

用到的知识点

①linux通配符 * ?
②php短标签<??>
③linux一切皆文件
④apache默认存放网页路径

linux通配符

*代表任意个字符,?代表一个字符

php短标签

可以用<?='命令'?>。这样就不用写<?php ?>绕过了这部分的英文字母

一切皆文件

我们linux用到的命令例如ls,cat等命令都是文件,存放于/bin目录下面,也可以这样使用/bin/cat /bin/ls。

apache默认存放网页的路径

/var/www/html ,现在有很多一键安装的面板wdlinux和phpstudy等目录会改变。

一步一步分析

①现在假设代码是这样的(本地试了下)没有任何过滤

index.php

flag.php  

这种情况我们直接

?code=?><?php getFlag()?>  

或者

code=?><?php echo `/bin/cat /var/www/html/index.php` ?>(要查看源代码才能显示代码)

也可以用短标签试一下:

?code=?><?=getFlag()?>
code=?><?=`/bin/cat /var/www/html/index.php`; ?>

细节:

为什么code=?>,为什么要先闭合呢?

eval里的参数不让直接传<? php,    
说是得先离开php模式后进入那就
?>  <? php就可以了  

②现在代码做了过滤,过滤了英文数字_$和长度,就是原来的题目。

因为执行的系统命令,我们可以用linux通配符

/bin/cat /var/www/html/index.php>变成
/???/??? /???/???/????/?????????
但这样会超过长度,所有最后的index.php直接换成*就好了
/???/??? /???/???/????/*  

那<?php怎么绕过呢 ?这就用到了短标签 > =?><?=`/???/??? /???/???/????/*`;?>

为什么要用`而不是',浏览器会进行编码破坏掉了',而`可以作为'使用但是不会被编码

转载于:https://www.cnblogs.com/zaqzzz/p/9984569.html

安恒杯月赛 babypass getshell不用英文字母和数字相关推荐

  1. python中如何判断输入的是英文字母_python如何判断一个字符是否为汉字,英文字母,数字,空还是其他...

    一直在忙工作的事情,对不起大家,今后一定抽出时间来写python,和大家一起学python. 今天给大家一段代码,大家可以看一下哈. # 判断一个字符是否为汉字,英文字母,数字,空还是其他 # 使用U ...

  2. isalnum()函数:找出str字符串中为英文字母或数字的字符

    找出str字符串中为英文字母或数字的字符 (1)Linux下编程用到的函数是:int isalnum(int c) 返回值:若参数c为字母或数字,则返回TRUE:否则返回NULL(0) #includ ...

  3. [YTU]_1032( 统计出其中英文字母、数字、空格和其他字符的个数)

    Description 输入一行字符,分别统计出其中英文字母.数字.空格和其他字符的个数. Input 一行字符 Output 统计值 Sample Input aklsjflj123 sadf918 ...

  4. 金山笔试题-字符串排序 : 写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理...

    写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理.经过处理后的字符串其内容按字母,数字,符号的顺序存放.函数声明如下: void ParseString(char* pst ...

  5. 正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度

    匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_:  ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度: ...

  6. 正则表达式 匹配中文,英文字母和数字及_长度详解

    http://www.juapk.com/thread-2472-1-1.html 匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z]  数字:[0-9] 匹配中文,英文字母和数字及 ...

  7. 【转】正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度

    [转]正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度 using System.Text.RegularExpressions; 匹配中文:[\u4e00-\u9fa5] 英文字母:[a ...

  8. #Python3中检测字符串是否只由大写英文字母或者数字组成issupper()

    31.(str).issupper() 检测字符串是否只由大写英文字母或者数字组成. #如果字符传中至少有一个字符(长度大于1) 且所有的字符都是大写英文字母或者数字返回True,否则返回False. ...

  9. java 统计汉字个数_Java简单统计字符串中汉字,英文字母及数字数量的方法

    本文实例讲述了java简单统计字符串中汉字,英文字母及数字数量的方法.分享给大家供大家参考,具体如下: package org.zhy.demo.algorithm; /** * 有一个字符串,其中包 ...

最新文章

  1. 如何在github上为新问题附加新的拉取请求?
  2. android中Logcat的TAG过滤
  3. poj 1006(中国剩余定理+模板题)
  4. 永久开启完整版Google Play
  5. android 的监控讲解,java android网络监测详解
  6. AD19无法生成PCB_对PCB印制线的传输线效应以及封装、连接器和电缆的频率响应进行全面分析...
  7. centos8 yum安装mysql8 流程配置
  8. rust工作台可以拾取吗_10台铝型材工作台一周交货可以吗
  9. 骑士cms,骑士cms快速搭建
  10. android 有序map,给HashMap排序,使之成为有序Map
  11. 解决WIN10本地账号绑定微软账号后无法解绑的方法
  12. 【经验总结】小白挖洞十天经验分享
  13. 【数字IC前端笔试真题精刷(2022.8.14)】大疆——数字芯片开发工程师B卷
  14. Prometheus监控系统
  15. html 图片放大保证不失真,教你如何在保证图片不失真的情况下缩小图片大小
  16. 国内外IP黑名单查询网站和邮件相关DNS的查询大全
  17. unity 动态字体 和 静态字体
  18. The Romantic 老炮儿
  19. 表示身体各部位的英语单词
  20. 第三章:计算机视觉(下)

热门文章

  1. 【UOJ】【BZOJ】 [Zjoi2016]小星星
  2. 第一章: 新的结构化元素
  3. (hdu step 8.1.1)ACboy needs your help again!(STL中栈和队列的基本使用)
  4. 转 sqlserver 中NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
  5. 让人兴奋的视差滚动(Parallax Scrolling)效果网站分享
  6. ASP.NET备份恢复SqlServer数据库
  7. 告别.net ! 2年多了,舍不得!
  8. NeurIPS2021 VALUE:快来刷榜吧!微软提出视频多模态新基准,同时含检索、caption、QA等多个任务!...
  9. CV初级研究工程师,苏黎世联邦理工学院招聘
  10. python乘法运算为什么是重复_警惕python中的*重复符(运算符)