misc
图片隐写
- PDF转换器(桌面上)将pdf格式转化为word格式
- word 文件可以取消隐藏文字
流量
- 可以直接搜索flag
mysql contains flag
- 追踪tcp流,http流
- 提示有length时很有可能与ascii码有关
密码
- 最常见的是base64,进制转换,进制与字符转换
- 栅栏密码:简单的移动字符位置
- 培根密码:AABBA ABBAA
- 摩斯电码 .-…- …-.-.
- 盲文对照表
脚本
- 从图像中获取文字
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'D:\工具\Tesseract-OCR--图片识别\tesseract.exe'
tessdata_dir_config = r'--tessdata-dir "D:\工具\Tesseract-OCR--图片识别\tessdata"'
image = Image.open(r"D:\misc1.png")
code = pytesseract.image_to_string(image, config=tessdata_dir_config)
print(code)
- 获取图像宽高(有crc)
png
import struct
import binascii
import os
m = open(r"C:/Users/Lenovo/Desktop/misc33.png", "rb").read()
k = 0
for i in range(5000):
if k == 1:
break
for j in range(5000):
c = m[12:16] + struct.pack('>i', i) + struct.pack('>i', j)+m[24:29]
crc = binascii.crc32(c) & 0xffffffff
if crc == 0x5255a798:
k = 1
print(hex(i), hex(j))
break
- 获取图像宽高(无crc)
jpg
import zlib
import struct
filename = "C:/Users/Lenovo/Desktop/misc35.jpg"
with open(filename, 'rb') as f:
all_b = f.read()
#w = all_b[159:161]
#h = all_b[157:159]
for i in range(920,950):
#901-1200
name = str(i) + ".jpg"
f1 = open(name,"wb")
im = all_b[:159]+struct.pack('>h',i)+all_b[161:]
f1.write(im)
f1.close()
png
import zlib
import struct
filename = "C:/Users/Lenovo/Desktop/misc34.png"
with open(filename, 'rb') as f:
all_b = f.read()
#w = all_b[16:20]
#h = all_b[20:24]
for i in range(1100,1200):
# 901-1200
name = str(i) + ".png"
f1 = open(name,"wb")
im = all_b[:16]+struct.pack('>i',i)+all_b[20:]
f1.write(im)
f1.close()
gif
import zlib
import struct
filename = "misc36.gif"
with open(filename, 'rb') as f:
all_b = f.read()
for i in range(920,951):
name = str(i) + ".gif"
f1 = open(name,"wb")
im = all_b[:38]+struct.pack('>h',i)[::-1]+all_b[40:]
f1.write(im)
f1.close()
压缩包加密
- 暴力
- 字典
- 明文
- zip伪加密
- 里面文件被损坏可以试试修复
- 伪加密也可以用Linux 7z解压 (打开vmdk文件)
7z x flag.vmdk -o./
//注意解压的不是压缩包,是压缩包里的文件
- 010提取zip–PK是zip文件的标志,不过也有可能会是doc文件。zip文件头504B0304
图片隐写
- jpg隐写用jpgh打开
- 010editor 看宽高,ctrl+f搜索flag,看最下面图片信息(jpg,bmp,gif)修改宽高,看文件头分离图片或查看文件头是否受损:
JPG:FFD8FF(开头FFD8,结尾FFD9)
PNG:89504E47
GIF:47494638
ZIP:504B0304
RAR:52617221 - linux
1,binwalk和foremost分离
2,exiftool查看图片全部信息
3,identify 主要用于获取一个或多个图像文件的格式和特性。
identify -format "%T " misc39.gif > 1.txt
4,zsteg可以检测PNG和BMP图片里的隐写数据。
查看lsb
zsteg xxx.bmp
zsteg xxx.png
zsteg -a (文件名) #查看各个通道的lsb
检测zlib
#-b的位数是从1开始的
zsteg zlib.bmp -b 1 -o xy -v
懒人专属
zsteg 1.png --all
分离文件
zsteg -e extradata:0 misc17.png >1.txt
5, file 1.txt -->查看文件类型
6,strings 1.txt—>打印文件中可打印的字符
7,steghide发现图片有隐写文件(图片与文件合并),使用steghide extract -sf good.jpg,空密码即可
- 查看删除IDAT模块(png):tweakpng,debugger(kali也可以使用)
- bmp计算图片宽高.
一般图片都是900px150px
像素数=(总字节数-末尾俩0的字节-文件头字节)/3=225000=宽高 - 查看图片属性,这里可用EXIF查看器
- Png-Debugger 检测各数据块中的 CRC 是否正确
使用方法 pngdebugger 文件路径 - 查看IDLE
kali pngcheckpngcheck -vv 文件路径
若出现问题,用用tweakpng
删了 - exiftool,提取照片exif的信息
exiftool 文件路径
- 区分png和apng,用apngdisassembler直接分离每一帧
音频类隐写
audacity记得要以wav形式导出
用这个网站听取摩斯电码音频
- 记得看图片属性
- 区分png和apng的关键:010editor是否有fcTL,apngdisassembler分离apng,stegsolve分离gif
web
1,使用burpsuite进行POST需要二部曲:
- 在请求头模块输入post=xxx
- 修改请求方式
2,变量覆盖与MD5
- 显性覆盖$a=$_GET[xx]
- 隐性覆盖 parse_str()–字符串 extract()数组
MD5
- 0e绕过(弱类型比较)
md5('QNKCDZO') == md5(240610708)//
MD5加密后会变成这个样子
0e830400451993494058024219903391 == 0e462097431906509019562988736854
- 数组绕过(弱类型比较/强类型比较)
md5(a[]=1) === md5(b[]=1)// null===null
- MD5碰撞(两个不同内容的输入,经过散列算法后,得到相同的输出)
a=%5Eq%FEO%AF%81-%1EW%99%0B%94W%EB%1F%84%13g%A0%A4%3A%08p%90%18%FAA%D644%C7W%0B%C2%ED%D0%D8%00%D8%DB%8B%C2%EBY%AE7%E9u%12b%F1%13%D8ce%7C%5D%01%CBiW5%0D%B4%BEm%ECR%EE%7B%83%0E%C9%25%80%AB%A9%09E%7DT%D2%94%98%C3%13%B3%DC%1A%9D%A6%27J%8B%1D%DD%05%E0%3A%88%D4%97%B4%A5%3E%17%15%9A%96P%B6%FE%E2%7C%16%05%9F%C9ceR%948tok%B8%98
&b=%5Eq%FEO%AF%81-%1EW%99%0B%94W%EB%1F%84%13g%A0%24%3A%08p%90%18%FAA%D644%C7W%0B%C2%ED%D0%D8%00%D8%DB%8B%C2%EBY%AE%B7%E9u%12b%F1%13%D8ce%7C%5D%01%CB%E9W5%0D%B4%BEm%ECR%EE%7B%83%0E%C9%25%80%AB%A9%09E%7DT%D2%94%18%C3%13%B3%DC%1A%9D%A6%27J%8B%1D%DD%05%E0%3A%88%D4%97%B4%A5%3E%17%15%9A%96%D0%B5%FE%E2%7C%16%05%9F%C9ceR%948%F4ok%B8%98
- MD5-SQL注入
ffifdyop 的MD5加密结果是 276f722736c95d99e921722cf9ed621c
经过MySQL编码后会变成'or'6xxx,使SQL恒成立,相当于万能密码,可以绕过md5()函数的加密
3,http
跳转新的页面可以抓包 也可以cmd直接执行curl -v 新网址
4,信息泄露思路
- 先用7ksban扫描
- 网站备份文件
- 解压源码
www.zip
- vim文件
程序员使用vim编辑器编写一个index.php文件时,会有一个.index.php.swp文件,如果文件正常退出,则该文件被删除,如果异常退出,该文件则会保存下来,该文件可以用来恢复异常退出的index.php,同时多次意外退出并不会覆盖旧的.swp文件,而是会生成一个新的,例如.swo文件。
以 index.php 为例 第一次产生的缓存文件名为 .index.php.swp
第二次意外退出后,文件名为.index.php.swo
第三次产生的缓存文件则为 .index.php.swn
注意:index前有 “ . “
- git源码泄露
url/.git/index.php
能扫描到
http://url/.git/
http://url/.git/config
利用GitHack进行信息读取:
python GitHack.py http://url/.git/
或者dvcs-ripper
rip-git.pl -v -u http://url/.git
- hg泄露
能扫到
http://url/.hg/
dvcs-ripper
rip-hg.pl -v -u http://url/.hg
- SVN 源码泄露
url/.svn
能扫到以下目录
http://url/.svn/entries
dvcs-ripper
rip-svn.pl -v -u http://www.example.com/.svn/
- bzr/Bazaar泄露
能扫到
http://url/.bzr/
dvcs-ripper
rip-bzr.pl -v -u http://www.example.com/.bzr/
- CVS泄漏
能扫到
http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的结构
dvcs-ripper
rip-cvs.pl -v -u http://www.example.com/CVS/
- DS_Store 文件泄露
能扫到
http://url/.DS_Store
dsstoreexp
python ds_store_exp.py http://url/.DS_Store
- GitHub源码泄漏
https://github.com/search?q=smtp+user+@qq.com&type=code
- tobots协议
url/robots.txt
- phps源码泄露(phps是php后缀名的变更)
url/index.phps
- 探针泄露
url/tz.php
找phpinfo
- sql备份
url/backup.sql
- mdb文件泄露
url/db/db.mdb
命令执行
命令执行
知识点
- 重定向:跳转另一个页面
- 网页禁止复制粘贴,可以禁用javascript
- preg_replace() str_ireplace()可以双写绕过