pwn环境搭建
使用Linux版本ubuntu20.04 LTS
步骤
安装ubuntu
vim安装
1sudo apt-get install vim
更换默认源
1sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
12345678910111213141516171819deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe mu ...
upload-lab
前提知识文件上传知识
php文件上传过程
Less-1(前端禁用JS绕过)前端存在js代码判断文件类型,所以直接浏览器禁用Js
12345678910111213141516171819<script type="text/javascript"> function checkFile() { var file = document.getElementsByName('upload_file')[0].value; if (file == null || file == "") { alert("请选择要上传的文件!"); return false; } //定义允许上传的文件类型 var allow_ext = ".jpg|.png|.gif"; //提取上传文件的类型 var ext_name ...
sql-lab-adv
Less-21/22Less-21:
Cookie注入,使用的是base64编码进行注入,这里有两种方法:报错注入和普通的联合注入
1报错注入payload: YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsIGNvbmNhdCgweDdlLCAoc2VsZWN0IHZlcnNpb24oKSksIDB4N2UpLCAxKSAj
1联合注入payload: YWRtaW4nKSBhbmQgMT0yIHVuaW9uIHNlbGVjdCAxLDIsMyAj
两种方法都是先将注入语句进行base64编码之后在抓包修改Cookie头部信息
Less-22:
双引号Cookie头部注入,应该也是两种方式,报错和联合,尝试一下。
果然
12联合payload:admin" and 1=2 union select 1,2,3 base64编码:YWRtaW4iIGFuZCAxPTIgdW5pb24gc2VsZWN0IDEsMiwzICM=
12报错注入payload:admin" and updatexml(1, concat(0x7e, (sel ...
sql-lab-base
需要掌握的MySQL基本知识imformation_schema数据库中有很多张表,其中有用的信息如下:
tables_schema:存放每个数据库中的所有表名,常用查询语句 select table_name from imformation_schema.tables where table_schema = 'xxxx'
columns:存放表名,以及每张表的列名,常用查询语句select column_name from imformation_schema.columns where table_name = 'xxxx'
常用函数:
version(),查询系统版本
database(),查询当前数据库名
concat(),使用符号连接字符串
group_concat(),将多个返回信息变成一列
Less-1/2Less-1: 字符形注入,需要加单引号。
Less-2: 数字型注入,不需要加单引号就可以注入。
Less-3/4Less-3: 从源代码看出查询语句加入了括号,目标就是绕过括号
1$sql="SELECT * FRO ...
leetcode刷题记录-2
Hanota
经典递归问题,从这道题学到的关于递归的思想挺多的
123456789101112131415class Solution { public void move(int size, List<Integer> A, List<Integer> B, List<Integer> C){ if (size == 1){ C.add(A.remove(A.size() - 1)); return; } move(size - 1, A, C, B); C.add(A.remove(A.size() - 1)); move(size - 1, B, A, C); } public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) { ...
leetcode刷题记录-1
towsum
123456789101112public int[] twoSum(int[] nums, int target) { int[] index = new int[2]; for (int i = 0; i < nums.length; i++) { for (int j = 0; j < nums.length; j++) { if (nums[i] + nums[j] == target && i != j) { index[0] = i; index[1] = j; } } } return index; }
hashMap
上面的方法在时间复杂堵上为O(n*n),在数据过大时十分暴力,可以采用哈希表来检索
reverse
看到别 ...
HWS计划2021硬件安全冬令营线上选拔赛
babyre
一道hook题,ida打开代码还是比较清晰的,首先判断长度然后在加密,但是我没有搞清楚这个hook的流程,听别的师傅说的在CRT的时候,从r3到r0时候hook的😥(听的不是很懂),但是我瞎找找到这两个函数
资源解密
资源加载
可以看出程序加载了一个叫CIPHER_DLL的资源,这个资源其实就是经过加密的DLL,我用ResourceHacker(一个可以查看程序资源的工具)来查看程序中的资源
程序中确实有一个叫CIPHER_DLL的资源,且这个资源需要解密才能使用,图中**wow!**就是证明,把这个资源的二进制文件提出来,在解密回去,得到一个DLL
1234567891011121314import structimport os//解密资源def ResourceDecrypt(): filepath = 'C:\\Users\\86180\\Desktop\\CIPHER_DLL101' dllpath = 'C:\\Users\\86180\\Desktop\\DLL.dll' key = ...
2019极客大挑战web
[极客大挑战 2019]EasySQL万能密码直接出
11' and '1' = '1
[极客大挑战 2019]LoveSQL
首先查出单引号报错
尝试用万能密码登录,发现只是一个无用的值,CMD5网站也无法破解,尝试其他方法
尝试中断注入,联合注入查看其他信息可以看到用到了查询的第2,3个字段
11' and 1=2 union select 1,2,3 #
获取当前数据库名,回显出当前数据库名为geek
11' and 1=2 union select 1,database(),version() #
查询数据库里面的表名称
12345# 查询所有表名select table_name from information_schema.tables where table_schema = 'database_name'# 查询所有列名select column_name from information_schema.columns where table_name= ...
红明谷/虎符CTF-re题解
红明谷-g0看名字就是go语言题目,用IDA-golang-helper还原符号表之后,看到只有几个函数,其中main_Encode就是加密函数
函数逻辑比较简单,输入长度等于20,打乱位置,进入main_Encode加密,最后进入main_fun1进行比较,直接看main_Encode中的加密算法
动态调试后发现一张表,表的长度为58位,判断为换表base58加密
进入main_fun1函数中找到加密后的字符串,注意 runtime_memequal这个比较的函数需要在汇编中寻找比较的字符串首地址,在伪代码中是找不到的
123456789101112import base58Cipher = '2GVdudkYo2CBXoQii7gfpkjTc4gT'Plain = ''new_table = '12Nrst6CDquvG7BefghJKLMEFHPQZabRSTUVmyzno89ApwxWXYcdkij345'old_table = '123456789ABCDEFGHJKLMNPQRSTUVWXYZ ...
hgame2021-re部分题解
前言hgame 2021的逆向部分题解,一道nc题和一道安卓逆向没有做,每周的题目都看了看,做了四分之三左右,杭电的比赛题目出得很有水平,自己学到了很多东西,wp本来说每周都写的,但是懒,比赛都结束一个月了才偷工减料得写出来。有兴趣的师傅凑合着看看吧吧🤪
RE-week1一杯阿帕茶明显的TEA加密标志,后面分析为XXTEA加密
加密后的数据,刚好35位
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include <stdint.h>#include <stdio.h>#define DELTA 0x9e3779b9#define MX (((z>>5 ^ y<<2) + (y>>3 ^ z<<4)) ^ ((sum ^ y) + (k[(p&3) ^ e] ^ z)))void XXTEA(int n, uint32_t* v, uint32_t* ...