misc音频隐写
文本本身往往是可以正常播放的音乐,信息通常和音乐本身内容无关,而是以波形等某种形式藏在音频文件中
频谱分析、波形分析(Audicity)
摩斯编码、敲击码(基于5乘5方格波利比奥斯方阵) (通过听文件中的细节)
工具隐写(steghide、MP3stego)
Audicity查看波形和频谱这个音频只有一个声道,可能有的音频会有两个声道然后在一个声道的波形中可能会藏着morse密码,或者波形可以转化成二进制这种morse密码
这个图就是转换成二进制
有些时候flag会直接藏在频谱图中
DTMF,双音多频。可能会在频谱图中出现
分离左右两个音轨学习链接,Audicity的还有一小部分使用在这个视频的最后部分
MP3Stego隐写音频文件同其他格式文件一样可以在比特流中嵌入数据,常用的工具如MP3 Stego,该工具在提取隐写信息时会需要用到密码,因此通常与其它部分结合考察(如压缩包解密等),通过得到的密码来从MP3中提取数据,从而得到隐藏信息
在Encode.exe和Decode.exe所在文件夹下,cmd写入: Encode.exe -E hidden_text.txt - ...
计算机网络(家庭网络常识等)
⚽猫、路由器、wifi、拨号一根入户光纤插到猫上面,然后用网线连接猫和路由器,然后再用网线连接路由器和电脑,路由器可以发射wifi,用手机或电脑通过wifi连接到路由器。
猫现在使用的一般是光猫(以前是猫),猫和广猫的区别在于:光猫支持光纤。以前拉到家里面的都是网线,现在大部分都是光纤
猫的功能:将要传输的信息转换成适合传输的频率、形式等。(数据在光纤中通过光信号进行传输的,光猫就可以把光信号转换成电信号或者其他模拟信号,使其在网线中进行传输)
路由器没有路由器的话,那么猫通过网线直接连接到电脑,将会没有wifi,只能支持一台设备上网,每次开机后都需要拨号
有路由器之后,路由器会自动拨号(路由器连上网了),然后路由器再通过wifi、网线连接其他设备,让其他设备也可以上网
wifiwifi是路由器发射出来的,wifi就像一根无形的网线,连接手机/电脑到路由器
所以有时候为什么wifi是满格的却不能上网呢,因为wifi连接的是路由器,如果路由器本身没有网,WiFi再强也无法上网。wifi满格只能说明和路由器之间的连接很强
宽带大小为什么20M宽带,最大下载速度只能到2.5M?宽带大小一般用 ...
备份文件泄露
disearch目录扫描工具下载地址我是放在kali里面的
使用方法:就是用python运行disearch.py文件./dirsearch.py -u 地址 -e php
-u 指定url-e 指定网站语言-w 可以加上自己的字典(带上路径)-r 递归跑(查到一个目录后,在目录后在重复跑,很慢,不建议用)–random-agents 使用代理(使用的代理目录在uesr-agents.txt中,可以自己添加)
根据状态码查看是否存在
所以扫描出了有robots.txt
常见网站备份文件后缀名和文件名文件名:’web’, ‘website’, ‘backup’, ‘back’, ‘www’, ‘wwwroot’, ‘temp’后缀名:’tar’, ‘tar.gz’, ‘zip’, ‘rar’
123456789101112131415import requestsurl1 = 'http://xxx.com' # url为被扫描地址,后不加‘/’# 常见的网站源码备份文件名list1 = ['web', 'website', ...
密码学刷题(杂)
2020-BJDCTF-Crypto-rsa因为给了e,所以后面有些条件并不用到(如果没有给e,就会用到)
1234567891011121314151617181920212223242526from Crypto.Util.number import getPrime,bytes_to_longflag=open("flag","rb").read()e = 52361p=getPrime(1024)q=getPrime(1024)assert(e<100000)n=p*qm=bytes_to_long(flag)c=pow(m,e,n)print c,nprint pow(294,e,n)p=getPrime(1024)n=p*qm=bytes_to_long("BJD"*32)c=pow(m,e,n)print c,n'''output:12641635617803746150332232646354596292707861480200207537199141183624438303 ...
hagme线上赛
1、Easy RSA123456789101112131415161718#题目所给代码from math import gcdfrom random import randintimport gmpy2import libnumfrom Crypto.Util.number import getPrimedef encrypt(c): p = getPrime(8) q = getPrime(8) e = randint(0, p * q) while gcd(e, (p - 1) * (q - 1)) != 1: e = int(next_prime(e)) return e, p, q, pow(ord(c), e, p * q)if __name__ == '__main__': print(list(map(encrypt, flag))) # [(12433, 149, 197, 104), (8147, 131, 167, 6633), (10687, 211, 197, 35594), (196 ...
RSA脚本收集(不懂原理的那种)
脚本几乎都来自b站风二西,非常感谢
维纳攻击一般给出n、e、ce指数很大
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970import gmpy2import libnumdef continuedFra(x, y): """计算连分数 :param x: 分子 :param y: 分母 :return: 连分数列表 """ cf = [] while y: cf.append(x // y) x, y = y, x % y return cfdef gradualFra(cf): """计算传入列表最后的渐进分数 :param cf: 连分数列表 :return: 该列表最后的渐近分数 ...
webshell与文件上传漏洞
🎄webshell🎄什么是webshellwebshell,简称网页后门,简单来说它是运行在web应用之上的远程控制程序
webshell其实就是一张网页,由PHP、JSP、ASP、APS.NET等这类web应用程序语言开发,但webshell并不具备常见网页的登录,例如登录、注册、信息展示等功能,一般会具备文件管理、端口扫描、提权、获取系统信息的功能。拥有比较完整功能的webshell,我们一般称之为大马。功能简易的webshell称为小马。除此之外还有一句话木马、菜刀马、脱裤马、内存马等等的名词,是对于webshell功能或特性的简称。
大马界面
🎄php一句话木马
<?php @eval($_POST[x]);?>
@是错误控制运算符,当@放置在一个php表达式之前,该表达式可能产生的任何错误信息都将被忽略。$_POST也可以改成$__GET或$_REQUEST,根据需求选择例如:对该webshell发送一个POST请求,请求内容为x=phpinfo()
在根目录下新建一个php文档,把一句话木马写进去。打开网站,post请求
或者也可以尝试一些其他请求x= ...
web基础题型
查看源码1、Crtl+u2、url前面加上 view-source:3、打开开发者工具:F12(如果自带热键的话Fn+F12) 或 Ctrl+Shift+I
PHP.erge()函数%00截断漏洞erge()用途用指定的模式匹配一个字符串中指定的字符串,如果匹配成功则返回true,否则返回false。搜索字母的字符是大小写敏感的。可选的参数规则包含一个数组的所有匹配表达式,它们被正则表达式的括号分组。ereg(“^[0-9]+$“,$_GET[‘password’])===true#保证参数全是数字strpos($_GET[‘password’],’admin’) #查找admin第一次在参数中出现的位置
可以构造payload?password=111%00admin #因为ereg函数%00截断
PHP.sha1()函数漏洞PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以’0E’开头的,那么PHP会认为它们是相同的,都是0.常见的sha1后以0E开头的值 ...
各种编码特征
1、jsfuck 组成:[] () + !示例:[][(![]+[])[+[]]+([![]]+[][[]]
2、brainfuck组成:+-[].<>示例:++++++++++[>+++++++>++++++++++>+++>+<<<<-]++.>+.+++++++…+++.>++.<<+++++++++++++++…+++.——.——–.>+.>
3、Ook编码:Ook! Ook!
4、培根只有两种字符每一段的长度为 5
5、base家族base64:大小写字母,0~9,+,-,64位组成的base32:使用32个可打印字符(字母A-Z和数字2-7)base16:使用16个ASCII可打印字符(数字0-9和字母A-F)对任意字节数据进行编码。base36:使用0~9的数字,加上所有26个字母,所有的字母要不全大写,要不全小写。base58:58=9个阿拉伯数字(去掉0)+24个大写字母(去掉I和O)+25小写字母(去掉l)base62:由10个数字、26个大写英文字母和26个小写英文字母 ...
RSA小学生刷题
不记录直接可以套脚本写出来的
风二西RSA_11234567891011121314151617import gmpy2import libnumimport uuidflag="flag{"+str(uuid.uuid4())+"}"print(flag)m=libnum.s2n(flag)p=libnum.generate_prime(512)q=libnum.generate_prime(512)n=p*qe=1c=pow(m,e,n)print("n=",n)print("c=",c)print("e=",e)n= 已给出太长我省略了c= 已给出太长我省略了
直接print(long_to_bytes(c))即可因为long_to_bytes之后前面会多出‘b,就像下面这样
12345678910from Crypto.Util.number import *e=1n =c =for i in r ...