SSRF
产生SSRF漏洞的函数1、file_get_contents:下面的代码使用file_get_contents函数从用户指定的url获取图片。然后把它用一个随即文件名保存在硬盘上,并展示给用户。
12345678910111213//file_get_contents是把文件写入字符串,当把url是内网文件的时候,会先去把这个文件的内容读出来再写入,导致了文件读取<?phpif (isset($_POST['url'])) { $content = file_get_contents($_POST['url']); $filename ='./images/'.rand().';img1.jpg'; file_put_contents($filename, $content); echo $_POST['url']; $img = "<img src=\"".$filename."\"/>"; ...
jwtcrack(kali)
jwtcrack此工具对于python用户登录时构造的用户信息jwt加密有爆破密码的作用。
安装jwtcrack使用以下命令直接从github上下载下来源码
1git clone https://github.com/brendan-rius/c-jwt-cracker
再安装gcc编译环境
1sudo apt install gcc
安装make
1sudo apt install make
工具源码文件夹在任意位置即可(如桌面)打开终端浸入文件夹内
1cd c-jwt-cracker
输入命令make如出现报错则安装该头文件即可
1sudo apt-get install libssl-dev
再次运行make,编译成功。
使用方法1./jwtcrack 字符串
等待即可
python反序列化
序列化与反序列化python的序列化和反序列化基本与php反序列化大致相同,但是python反序列化中,可以比较自由的创建新的属性和命令来调用例如
12345678910import pickleclass tmp(): text = "123"text = tmp()sertext = pickle.dumps(text)print(sertext)reltext = pickle.loads(sertext)print(reltext)
添加一些函数和变量后
123456789101112131415161718import pickleclass tmp(): text = "123" def __init__(self, text): self.text = text def __reduce__(self): return (tmp,("helloworld",))text = tmp('aa')sertext = pickle.dumps(text)print(sertext)reltext ...
反弹shell
反弹shellxxxxxxxxxx JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DCAD (dwg),文件头:41433130Adobe Photoshop (psd),文件头:38425053Rich Text Format (rtf),文件头:7B5C727466XML (xml),文件头:3C3F786D6CHTML (html),文件头:68746D6C3EEmail [thorough only] (eml),文件头:44656C69766572792D646174653AOutlook Express (dbx),文件头:CFAD12FEC5FD746FOutlook (pst),文件头:2142444EMS Word/Excel (xls.or.doc),文件头:D0CF11E0MS Access (mdb),文件头:5374616E64617264204AWordPerfec ...
伪随机数
C关于seed已知seed,就可以得到通过seed获得的多个随机数。脚本如下:
1234567891011#include <stdio.h>#include<stdlib.h>#include <time.h>int main(){ int a[1000]={0}; srand(0);//0为种子值 for(int i=0;i<=9;i++){ a[i]=rand()%255;//计算公式 printf("%d \n",a[i]); }}
Python关于seed初始化随机数生成器:random.seed(a=None)
如果 a 被省略或为 None ,则使用当前系统时间每给定一个seed,它会生成一个序列,如序列X: 0.1,3.2,1.5,9.7…你每次random.random()只是按顺序取了一个X中的点对于同一个seed,它产生的序列是固定的,所以随机化结果必然相同,而系统时间在不断变大 ...
Volatility
VolatilityVolatility官网地址里面有Windows版本和Linux版本,我用的是Windows。所以讲的大部分是Windows下的命令。
常用命令12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152可以使用 -h 参数获取使用方法和插件介绍,列举几个常用到的命令imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 –profile 中带上对应的操作系统,后续操作都要带上这一参数pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程cmdscan:可用于查看终端记录notepad:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用e ...
zsteg(图片隐写工具)
安装zsteg123git clone https://github.com/zed-0xff/zstegcd zsteg/gem install zsteg
可能安装会因为国内网速原因导致没反应,换个RubyGems的源。
123gem sources --remove https://rubygems.org/gem sources --add https://gems.ruby-china.com/gem sources -l
zsteg使用方法查看帮助
1zsteg -h
查看LSB信息
1zsteg pcat.png
检测zlib
1zsteg zlib.bmp -b 1 -o xy -v
显示细节
1zsteg pcat.png -v
尝试所有已知的组合
1zsteg pcat.png -a
导出内容
1zsteg -E "b1,bgr,lsb,xy" pcat.png > p.exe
总结主要是为了记录工具的使用,不然碰到图片隐写,不会用工具查看信息就尴尬了。
file_put_content和die
这个主要是因为一道反序列化题出现这个函数的相关知识才去搜索了一下.file_put_content和die(任意结束或者闭合php语言)结合,分为三种方式
12345file_put_contents($filename,"<?php exit();".$content);file_put_contents($content,"<?php exit();".$content);file_put_contents($filename,$content . "\nxxxxxx");
对于第一种情况文件名可控,文件内容可控
1.base64编码绕过利用base64解码,将死亡代码解码成乱码,使得php引擎无法识别
12$filename='php://filter/convert.base64-decode/resource=s1mple.php';$content = 'aPD9waHAgcGhwaW5mbygpOz8+';
content内base64为什么会前面多加一个小写a ...