SSRF
980364086cfb40ad2337392096edb1694046c8c4551bd44cdf4e322aec1192c2e1fc76bce1500d6586b479cf8641663d03f78459b548a9e93a87f51cf4f82fd1d3388f575b5d524d00ddd247acb5580fd67eb62afe7306e2d3b81d2f2c39ff4ea23a690c131810bf009011fa24e14a803391b45bad67edd9c5d3d10d8bb3c1599f0978d905afde893d5766c3916250bf4627957c75976448b07c949aaa4ff6b7910741205a433aa8b44bce0a76bad2b4bc3b97ee4c36b51dc1ba24e41904bff8e8d7fa2f18c8cfe69593f098e073271bd3402dd262cdbf7488bb9a4b38433c231fc35e0cee37264a2576c688e69dfec3f3f5505f98a0eb3b8 ...
JWT安全
49928c7a59cc27f58ef9835c6e362ca756a8bed3ec7c59ccba2e7c68a6363d4ae82706c67c71d035d39333b90443df096ff5f636f1156db8c8651418c78887115838d792e75e13d658437737da672f2e9e9a6d84dd25b80bde6e81ee0cd51127e9e5e1c3747a98324c6786f0a494254d0d89b2755f94a3e2d89d5d13f1564562974d16dd37db156b7c1f085625f675b8691f36ab24663dd32824919e1ca7220486e622711f8a2ec741582f0dc895a81ace84d2dec4e28ab1bb75504020071c445290a56f364bbed6e4a57dd681b62ebfff0bc97eb2bd556193e9041556b86e7463e261351406ad6879386f0ae14a92e938d91a1937a7af3d6 ...
Flask安全
session 伪造(会话篡改)客户端session在传统 PHP 开发中,$_SESSION变量的内容默认会被保存在服务端的一个文件中,通过一个叫 “PHPSESSID” 的 Cookie 来区分用户。这类 session 是“服务端 session ”,用户看到的只是 session 的名称(一个随机字符串),其内容保存在服务端。
然而,并不是所有语言都有默认的 session 存储机制,也不是任何情况下我们都可以向服务器写入文件。所以,很多 Web 框架都会另辟蹊径,比如 Django 默认将 session 存储在数据库中,而对于 flask 这里并不包含数据库操作的框架,就只能将 session 存储在 cookie 中。
因为 cookie 实际上是存储在客户端(浏览器)中的,所以称之为“客户端 session ”。
session的保护
原理分析看 P 神
json.dumps 将对象转换成json字符串,作为数据
如果数据压缩后长度更短,则用zlib库进行压缩
将数据用base64编码
通过hmac算法计算数据的签名,将签名附在数据后,用“.”分割
第 4 步就解 ...
Web-Base
弱类型比较弱类型简介通常语言有强类型和弱类型两种,弱类型可以随意转换变量的类型。类型转换最常见的就是 int 转 string、string 转 int 。
123456<?php$num = 1;$str0 = (string)$num;$str1 = strval($num);var_dump($str0);//string(1) "1"var_dump($str1);//string(1) "1"
string 转 int 使用的 intval() (取整函数)导致很多漏洞
12345<?phpvar_dump(intval(4));//4var_dump(intval("1asd"));//1//碰到不能转换的字符串返回0var_dump(intval("asd1"));//0
md5(), json_encode(), array_search(), strcmp(), switch() ,in_array() 这几个容易涉及到 php 弱类型的函数
比较操作符
==
在进 ...
反序列化
49928c7a59cc27f58ef9835c6e362ca756a8bed3ec7c59ccba2e7c68a6363d4a435605eb14bfe23260e8e6fbe2535338298abc93c1963aaa578245e9d987740ee2a9e496800151806e8771a09d028462d8f41006ca14628a301197aef7ff2519680391d3de00480aaf5dc1a20a0b1e6d27bb3896233b7f3af8b9679a1a1c009e2416a72c69ba28ea7a2b9d3bf157de407e20d982132010dbef02423947ab4e89c670d9e6d359e6e503e2acbe0e05bbfef981e990886dd5a5e8567283d6f07064d21016084f7ce83231e94f955998189a8c606721d762cc406e81462debbffd508be9a896ac96f95a28d969d60bc826c4a583aaa88d6eae870 ...
代码执行
3b66170c5fe40049880c93aad53606d3b61e1c7e1514dc037f29a97eca0a2920a1c970a36943b492db937a6c834f29870a5ff44a03e36b89c85e1ab9da8d310cb0865074e75fbce2d42b6d7a27e2bf310597e215cb074917a08dc66c515ea09158803e74c469e76775db6ac0c7acca3ce0891b08791bb0bf728e00c1b3473809a06b8feb2b0f50dadf30d275c268df9bfd4de1b2818073aba81ce2e14b18f4ecd5686ecbec49652315cf2b2962f6a6d5834c68a3e08b3602f715d5c0b44572697699606be23189184d4cd57207847fe98933d580d0f41dc7ac558d3652178a9196cb4cecc161208fd5d9f07a8858c4123c3b9aa991758c197 ...
树莓派4b抓取IOT流量环境配置
缘起在研究某些 IOT 设备时发现,该设备的操控逻辑是:手机发出指令到云端服务器,云端服务器发送指令到 IOT 设备。
手机到云端服务器之间的数据,用手机 root 装上 exposed+justtrustme 搭配 burpsuite 就能抓取 http、https 。
云端服务器到 IOT 设备之间的流量需要一些奇淫技巧。IOT 设备交互流量不局限于 http(s) 流量,还有通过 zigbee、蓝牙网关等等其他协议,实现本地联动的,burp 用起来就捉襟见肘了,Wireshark、科来网络分析系统等支持多协议的软件就体现优势。
设想了几个抓取方法:
在电脑上建立热点使用电脑无线网卡建立 WIFI 供 IOT 设备链接,电脑以有线方式链接至路由器;
将无线网卡桥接到有线网卡,确保联网;
在电脑上用 Wireshark 对无线网卡进行抓包;
在路由器上抓包:需要是基于 linux 的路由器,能装上 tcpdump ,软路由就符合条件。使用软路由无线网卡建立 WIFI 供 IOT 设备链接,软路由以有线方式链接至上级路由器。
在软路由上用 tcpdump 对无线网卡进行抓包, ...
安卓7以上APP抓包环境配置
变化安卓 7 以后引入了 SSL pinning ,最直接影响是:用户所安装的证书不再被系统信任,导致不能抓取 https 流量。
解决方法解决办法各种各样:
将证书安装到系统证书目录(需要 root )
安卓7+导证书到系统目录
xposed+justtrustme(需要 root+xposed )
简单记录下 xposed+justtrustme 环境配置过程。
手机环境
oneplus 2(已解锁 OME、BootLoader )
lineageos(android9)
root(magisk v23.0)
Xposed(riru v25.4.4 + riru-xposed v0.5.2.2)
MagiskTwrp 刷入 magisk 安装 zip 包就可以,最新版下载地址。
下载安装最新版 Magisk app (下载地址),点击 Magisk 隔壁的 install 自动安装,过程需要下载国外资源,有条件则科学上网。
Magisk app 更新对应是 App 隔壁的 install 。
Xposed
在 magisk app 管理器插件库中安装 riru 核心 ...
无处不在的syscall
syscall还会在哪里比较常见中低难度题目中,syscall 出现形式有:
syscall 是在 text 段里面作为 gadget 可以直接调用
在 64 位沙盒题目写 shellcode 执行 orw 时,使用 syscall 进行系统调用( 32 位系统调用是 int 0x80)
在 glibc 调用函数时也会出现 syscall ,比如 alarm、close 等等
调用 glibc 函数开头的 syscall 不需要泄露出 glibc 地址。因为可以看到这些 syscall 与 got 表中的地址处于同一个内存页,低字节覆盖就能将函数改为 syscall 。
各个版本 glibc 的每个函数 syscall 位置固定,也就是不要知道远程的 glibc 版本。
出题情景一般情况漏洞都是栈溢出,然后不带任何输出函数,就是无法泄露的 libc 地址或者知道远程 libc 版本(如果有输出函数就能调用输出函数泄露地址,成了简单题目)。
对于这种题目可以用 ret2dlresolve 解决。ret2dlresolve 会因题目位数和保护情况写 exp 利用难度不一,简单的可 ...
命令执行
3b66170c5fe40049880c93aad53606d3b61e1c7e1514dc037f29a97eca0a2920a1c970a36943b492db937a6c834f29870a5ff44a03e36b89c85e1ab9da8d310cb0865074e75fbce2d42b6d7a27e2bf310597e215cb074917a08dc66c515ea09158803e74c469e76775db6ac0c7acca3ce0891b08791bb0bf728e00c1b3473809f8c66b1906de4cb2b3133d1572babc09dc37014d4b73b0d9b23756d81d5ea48a84b179a8820ac55419e2e218864255932b6c9d3ad944b184c9c582c103cfe1f9df807388e9c4020bfb83d8d25b4c55f43a32a421de77fe27faf4d8ed09b158a7af96235ef38b807fe7330cff86c654cd49db3e7ee48aacf51 ...