[极客大挑战 2019]PHP1-超详细

这篇具有很好参考价值的文章主要介绍了[极客大挑战 2019]PHP1-超详细。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[极客大挑战 2019]PHP1

提示:有一个良好的备份网站的习惯 寻找一个备份文件字典,我在github上找的:

scopion/dic: 渗透字典,框架信息泄露,备份文件泄露,配置文件泄露。字典 (github.com)

我用的是top7777.txt字典,扫的很慢。

[极客大挑战 2019]PHP1-超详细

[极客大挑战 2019]PHP1-超详细

扫出来www.zip这个文件,然后下载下来 ,里面只有index.php和class.php两个文件有作用。

[极客大挑战 2019]PHP1-超详细

反序列化文件:
index.php

[极客大挑战 2019]PHP1-超详细

重点代码解读:

Select = $_GET['select']
 //这里需要传入序列化的内容
$res = unserialize(@$select); 

1. @符号在php中做错误控制操作符,当表达式附加@符号的时候,将忽略该表达式可能生成的错误信息,如果启用了track_errors功能php_errormsg中。每个错误都会覆盖此变量。

class.php

[极客大挑战 2019]PHP1-超详细

重点代码解读:

class Name{
    private $username = 'nonono';
    private $password = 'yesyes';
    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }

	function __wakeup(){
	        $this->username = 'guest';
    }
	1. Private 是一种可见性修饰符,private与public不同,private修饰的方法和数据域被限定只能在自己的类中被访问,即使在同一个包中也不能被其它类访问,public则可以运用在类或者类的成员上。
	private:用于声明私有变量	public:用于声明全局变量
	
	2. __construct 是构造函数,在对象被创建的时候自动调用,进行类的初始化,也就是说对象创建完成以后第一个被对象自动调用的方法。

	3. __wakeup 当使用unserilize()方法进行反序列化之前则会先调用__wakeup方法,但是序列化字符串表示对象属性个数的值大于真实的属性个数时会跳过__wakeup的执行 -->重点代码中如果自动调用了这个方法,username会被赋值成guest。

根据__destruct 析构函数(在这个对象的内容执行完之前 执行函数的内容)的内容可以得知,password=100,username=admin的时候满足条件就可以获得flag

但是当我们序列化传参了以后,还是无法获得flag,因为__wakeup这个函数在反序列化之前调用,改变了username的值,所以目前需要跳过wakeup(),上面讲了,如果对象属性的个数的值大于真实的属性个数的时候会跳过__wakeup的执行,把name后面的数字2改为大于2的数字:

payload

?select=O:4:“Name”:3:{s:14:" Name username";s:5:“admin”;s:14:" Name password";i:100;}

但是发现这个里面有空格,所以把空格url编码变成%00再传参

Payload

?select=O:4:“Name”:3:{s:14:“%00Name%00username”;s:5:“admin”;s:14:“%00Name%00password”;i:100;}

[极客大挑战 2019]PHP1-超详细

获得flag,实验结束文章来源地址https://www.toymoban.com/news/detail-401508.html

到了这里,关于[极客大挑战 2019]PHP1-超详细的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [极客大挑战 2019]FinalSQL(bypass盲注)

    这里是数字型注入,选择一个序号 这里过滤了很多东西 使用fuzzSQL字典,这是我自己定义编写的一个fuzz字典,内容较少 使用bp加载字典进行测试 看出被拦截的相应大小为890,那么之外的就是没有被拦截的 空格被过滤了,这里使用 ^ 来计算是否为数字注入 通过测试可以

    2024年02月09日
    浏览(42)
  • BUUFCTF—[极客大挑战 2019]Upload 1

    考点: 文件上传黑名单绕过 内容绕过 目录浏览 文件上传 1. 测试是黑名单还是白名单 上传图片1.png成功,上传1.php失败,1.pngs成功,说明是黑名单过滤。 所以要寻找黑名单外的php文件:php, php3, php5, php7, phtml都能作为php文件解析 ps:有些服务器默认不解析php3 phhtml等,如phps

    2024年02月04日
    浏览(39)
  • BUUCTF [极客大挑战 2019]BuyFlag1

    进入靶场,发现有 另一个buyflag页面 告诉我们如果要买flag,必须是cuit的学生,必须有正确的密码,查看源码,发现密码已经告诉我们  这里涉及post传递两个参数money和password,is_numeric的绕过 和password==404的弱比较,通过burpsuite抓包  这里有个cookie:user=0猜测cuit学生的cookie是

    2023年04月14日
    浏览(39)
  • BUUCTF [极客大挑战 2019]Knife1

     连接蚁剑,连接密码为Syc 在 / 文件夹下找到flag文件 打开得到flag

    2024年02月09日
    浏览(38)
  • visual studio 2019创建一个项目的详细步骤

    引言:本着边学边记录的原则,把学习的过程给记录下来,自己回顾的同时也分享给大家,转载请注明出处哈。 1、首先在桌面上双击打开visual studio 2019,看到如下界面: 2、点击1红框中的创建新项目,看到如下界面,第一个红框中的三个选项分别为语言类型,应用平台,项

    2024年02月01日
    浏览(48)
  • CVE-2019-11043(PHP远程代码执行漏洞)复现

    今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2019-11043(PHP远程代码执行漏洞)复现。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行渗透测试! CVE-2019-11043漏

    2024年02月06日
    浏览(53)
  • VS2019 + Qt : setToolTip的提示内容出现乱码

    在使用 setToolTip() 时, 标签提示只有英文是对的,中文是乱码! 应该是编码出了问题。默认情况下,Qt使用的是UTF-8编码,我就查看了一下这个在VS2019中cpp文件的编码: 可以看到,编码是ANSI,明显不对! 解决方法一: 我就转换了一下编码,转为UTF-8. 然后编译,中文就不再是

    2024年02月12日
    浏览(48)
  • ARTS挑战第二周-T:PHP数组相关操作

    合并两个数组 array_combine()传入2个参数,使用方法如下 array_combine (array  $keys , array  $values ): array 返回一个 array,用来自  keys  数组的值作为键名,来自  values  数组的值作为相应的值。 搜索关联数组键 如果在一个数组中找到一个指定的键,函数array_key_exists()返回TRUE,否

    2024年02月11日
    浏览(42)
  • Outlook2019一直提示输入用户名密码的解决方案

    最近突然遇到在使用outlook2019访问Outlook online时候一直提示  \\\'Need Password\\\',然后输入用户名密码后过一段时间会再次弹出。 经过research,发现如果使用Office365 ProPlus版本(2016或者2019),并且配置ADAL framework-based认证,在16.0.7967版本之后,user在使用WAM sign-in就可能会出现无法验证

    2024年02月15日
    浏览(60)
  • 【VirtualBox】安装 VirtualBox 提示 needsthe Microsoft Visual C++ 2019

    在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。 而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 开发环境:windows10 虚拟机:VirtualBox 7.0.8 ubuntu 打开 Microsoft Visual C++ 官网

    2024年02月15日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包