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

石林县工程建设个体交易网站南宁百度seo

石林县工程建设个体交易网站,南宁百度seo,建站公司的工作流程,留下自己的wordpress题目源代码 <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g); //implode 函数将数组 $filter_arr 中的元素用 | 连接成一个字符串。 // |在正则表达式中表示或的关系&#xff0c;所以连接后的字符串类似于 php|flag|php5|ph…

题目源代码

<?php$function = @$_GET['f'];function filter($img){$filter_arr = array('php','flag','php5','php4','fl1g');
//implode 函数将数组 $filter_arr 中的元素用 | 连接成一个字符串。
// |在正则表达式中表示或的关系,所以连接后的字符串类似于 php|flag|php5|php4|fl1g。
// 前后的 / 表示正则表达式的定界符,末尾的i表示不区分大小写匹配
//最终的效果就是正则表达式匹配字符串中出现的任意一个过滤词$filter = '/'.implode('|',$filter_arr).'/i';return preg_replace($filter,'',$img);
}if($_SESSION){
//unset()销毁整个会话数组unset($_SESSION);
}
//将user会话设置为guest表示当前用户为访客
$_SESSION["user"] = 'guest';
$_SESSION['function'] = $function;//将 $_POST 数组中的元素提取出来,使其成为单独的变量。
//如果 $_POST 中有一个键为 function 的元素,那么会创建一个名为 $function 的变量
//其值为该元素的值。
extract($_POST);if(!$function){echo '<a href="index.php?f=highlight_file">source_code</a>';
}if(!$_GET['img_path']){$_SESSION['img'] = base64_encode('guest_img.png');
}else{$_SESSION['img'] = sha1(base64_encode($_GET['img_path']));
}$serialize_info = filter(serialize($_SESSION));if($function == 'highlight_file'){highlight_file('index.php');
}else if($function == 'phpinfo'){eval('phpinfo();'); //maybe you can find something in here!
}else if($function == 'show_image'){$userinfo = unserialize($serialize_info);echo file_get_contents(base64_decode($userinfo['img']));
}

源代码中提示我们在phpinfo里面有好东西,去看看

 这个意思也就是说会在php解析完了以后包含d0g3_f1ag.php,大概率flag在这里

先从头捋一下:

在$GET['img_path']不存在的时候---$_SESSION['img']=base64-en("guest_img.png")

正常的逻辑就是,你这里$_SESSION['img']的值是guest_img.png定死了的,不会读取到flag文件

那怎么办呢,有两条路,第一条路是前面POST提交一个img是flag的值【这里提交变量为_SESSION这样进去就变成了$_SESSION就能混进本来的超级全局变量里头去了,好好好这么玩是吧】,第二条路就是利用php的反序列化字符串逃逸减少的情况,将原本的$_SESSION['img']=base64-en("guest_img.png")吞掉(变成前一个键的值),然后后面顺理成章接着我们构造的新的$_SESSION['img']的值

很明显第一条路中后面 $_SESSION['img'] = base64_encode('guest_img.png');还会再赋值一次,这样就覆盖了之前提交的img值,不行,所以利用字符串逃逸减少

先写个序列化php,但是像原来那么写死活编译不出来,应该就是变量名不能是_SESSION的事

这样不对!!

<?php
class _SESSION
{$public img='Z3Vlc3RfaW1nLnBuZw==';//guest_image.png$public user='guest';$public function='show_image';
}
$a=new _SESSION();
echo serialize($a);
?>

学习到个新的写法,就是直接写$_SESSION['xxx']

<?php
$_SESSION["user"] = 'kkk';
$_SESSION['function'] = 'show_image';
$_SESSION['img'] = base64_encode('guest_img.png');
echo serialize($_SESSION);//a:3:{s:4:"user";s:3:"kkk";s:8:"function";s:10:"show_image";s:3:"img";s:20:"Z3Vlc3RfaW1nLnBuZw==";}
?>

(后来发现这里头function的值可以随便取。。。)

就先试试user的值为n*php,function的值为;s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==
 

 原本想这么构造,但是又发现一个很傻的问题就是,序列化前面有三个属性,对应不上

然后改成这样 

 这样做了还是不行,后来发现好像是顺序错了.......

.....

换个顺序重新来

过滤后的字符串,标蓝的是php以为的user的字符串,标黄的是实际输入的function的值

再将/d0g3_fllllllag编码后提交,长度都是20不用改 

 

拿到flag 

http://www.dtcms.com/wzjs/350776.html

相关文章:

  • 可以微信引流的平台定西seo排名
  • 卖汽车的网站怎么做网站seo策划
  • 怎么在公众号上做网站网络营销策划书模板
  • 网站根目录验证文件是什么泸州网站seo
  • 快速网站优化哪家好软文推广怎么做
  • 正规招聘网站有哪些营销页面设计
  • 订阅号栏目里做微网站比较有名的个人网站
  • 网站建设 国家标准新闻发稿渠道
  • 江苏h5响应式网站建设设计营销推广的平台
  • 福州网站建设金森seo广告
  • 企业网站制作百度竞价一个月5000够吗
  • asp网站上传保定网站seo
  • 绿色主色调的网站seo推广专员工作好做吗
  • 有没有专门做布料的网站app推广代理加盟
  • 中关村手机之家官网台州seo公司
  • 长沙做网站街网络营销优化推广公司
  • 做网站要钱吗免费下载百度一下
  • 表白网页在线生成网站企业网站seo优化
  • 上海网站开发设计公司seo教程搜索引擎优化入门与进阶
  • 连州网站建设软文模板300字
  • 仙游网站建设巨量算数数据分析
  • indesign做网站如何做个网站推广自己产品
  • 武陟县住房和城乡建设局网站常用网站推广方法及资源
  • 免费网站制作知乎黑帽seo寄生虫
  • 三五互联网站管理登录地址成都百度推广联系方式
  • 苏州营销网站建设专业的网页制作公司
  • 电子商务网站建设软件开发课设旧版优化大师
  • 大连网站建设公司排名抖音seo是什么
  • 网站别人能打开我打不开佛山市人民政府门户网站
  • 网络优化工程师需要学什么seo检查工具