刷题回顾(持续更新)

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伪加密
  • 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
  • 虚拟机
    1,binwalk和foremost分离
    2,exiftool查看图片全部信息
    3,zsteg可以检测PNG和BMP图片里的隐写数据。
    4,identify 主要用于获取一个或多个图像文件的格式和特性。
identify -format  "%T "  misc39.gif > 1.txt

查看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
  • 查看删除IDAT模块(png):tweakpng,debugger(kali也可以使用)
  • bmp计算图片宽高.
    一般图片都是900px150px
    像素数=(总字节数-末尾俩0的字节-文件头字节)/3=225000=宽
  • 查看图片属性,这里可用EXIF查看器

音频类隐写

刷题回顾(持续更新)_第1张图片
用这个网站听取摩斯电码音频

  • 记得看图片属性
  • 区分png和apng的关键:010editor是否有fcTL,apngdisassembler分离apng,stegsolve分离gif

web

1,使用burpsuite进行POST需要二部曲:

  • 在请求头模块输入post=xxx
  • 修改请求方式
    刷题回顾(持续更新)_第2张图片

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/[email protected]&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 

你可能感兴趣的:(刷题记录,刷题)