Android-微信小程序库迪coffee逆向
微信小程序逆向摘抄自吾爱破解大佬文章:库迪小程序sign值加密算法分析 - 吾爱破解 - 52pojie.cn
一、环境准备1、抓包环境:
这里采用ProxyPin进行抓包,下载地址:proxypin 发行版 - Gitee.com
2、小程序解包工具:
使用unveilr进行解包,解包操作见摘抄文章。
3、微信开发者工具
使用微信开发者工具进行反编译,以便查看源码。
二、抓包分析1、首先抓包,找到一个post包,以/cotti-capi/shop/homePageGetShopDetail为例,编辑请求后,发现可以在响应体中看到app页面信息。
2、尝试修改时间戳(修改较大,将173改成172开头),发现提示如下,因此猜测后台对时间进行了校验,当请求包的时间与实际时间相差较大时会提示时间错误。
3、之后尝试修改sign值(将sign首位改成1),发现提示md5错误。
因为sign是32位,结合提示md5错误的信息,所以猜测程序的加密逻辑与时间戳有关,猜测sign是某个包含时间戳的字符串的md5值。
我们的目的是推导出md5值为41105C1F534237297E73C5850 ...
Android-Frida辅助逆向嘟嘟牛
一、Frida介绍摘抄自吾爱破解大佬:《安卓逆向这档事》十三、是时候学习一下Frida一把梭了(上) - 吾爱破解 - 52pojie.cn
1.什么是Frida?Frida 是一款开源的动态插桩工具,可以插入一些代码到原生App的内存空间去动态地监视和修改其行为,支持Windows、Mac、Linux、Android或者iOS,从安卓层面来讲,可以实现Java层和Native层Hook操作。
Hook操作就是一个类似动态插桩的功能,可以在app执行的任意过程中插入或修改一些代码以及参数和返回值,来修改程序的执行逻辑。
2.Frida原理及重要组件frida注入的原理就是找到目标进程,使用ptrace跟踪目标进程获取mmap,dlpoen,dlsym等函数库的偏移获取mmap在目标进程申请一段内存空间将在目标进程中找到存放frida-agent-32/64.so的空间启动执行各种操作由agent去实现
组件名称
功能描述
frida-gum
提供了inline-hook的核心实现,还包含了代码跟踪模块Stalker,用于内存访问监控的MemoryAccessMon ...
Android-安卓逆向破解登录
一、安卓开发初识平台:Android Studio Giraffe(2022)
SDK : 33
安卓开发是基于移动端开发的app,通过Android Studio设计,连接真机或虚拟机发行后进行测试。
1.环境安装(1) 首先官网安装Android Studio,之后安装sdk(连接移动端的桥梁,相当于java的jdk)
(2) 配置相关环境变量,将tools和platform-tools加入环境变量,没有的可以在AS的sdk tools中下载。
(3) 测试sdk中的adb,cmd命令行输入adb测试,adb是构建PC端和移动端的桥梁。
2.目录结构创建完一个empty project(java)后
(1) 最重要的是gradle(相当于web开发的maven),是项目构建的工具,可以帮助拉取远程仓库代码,其中有两个build.gradle,一个是项目的,另一个是模块的,在模块中定义了一些sdk版本以及一些包的远程地址和版本。
(2) 在src.main.java中,定义了MainActivity,相当于启动类,并且该类(所有类)需要在AndroidMainfest.xml中声明 ...
Web-反序列化
反序列化反序列化,我个人的理解就是伪造一个类,覆盖掉其原有的成员变量或成员函数的内容;或者需要构造一些链,比如一些指向关系,假如有a类和b类,a类中某个函数可以输出flag,但是没有被调用,b类中存在某个变量可以被调用,所以使b中变量指向a中的函数来调用a中的函数输出flag。我什么也不会,这只是感觉,哈哈哈。。
以下题目均来自于ctfshow web入门练习题反序列化部分。
例题1、签到12345678910111213141516171819202122232425262728293031323334353637class ctfShowUser{ public $username='xxxxxx'; public $password='xxxxxx'; public $isVip=false; public function checkVip(){ return $this->isVip; } public function login($u,$p) ...
Web-SQL注入
SQL注入sql注入,一般上来先测试是整数型还是字符型,如果要求输入id,可以输入1--+来测试是否报错,如果报错则不是字符型,其中’用来闭合引号,--+用来注释后边内容,也可以使用#,不过要写%23(url编码)
成功闭合之后,先判断下字段数:
输入1' order by 3--+看是否报错,如果3不报错,4报错,说明该表有3个字段,即3列。
之后,使用union联合查询数据库名、数据表名、字段内容。
以下题目均来自于ctfshow web入门练习题sql注入部分。
例题1、常规查询已知sql语句:
1$sql = "select username,password from user where username !='flag' and id = '".$_GET['id']."' limit 1;";
是字符型,使用-1’ union进行联合查询。
1、首先查询数据库名:
1-1' union select database(),user(),version( ...
Web-文件上传
文件上传以下题目均来自于ctfshow web入门练习题文件上传部分。
前端校验查看源代码,发现button里检验是不是png:
123<button type="button" class="layui-btn" id="upload" lay-data="{url: 'upload.php', accept:'images',exts:'png'}"> <i class="layui-icon"></i>上传图片</button>
两种方法绕过:
方法一:
直接在elements修改源代码,把png改成php,之后上传1.php,里边写一句话木马:
123<?php system('tac ../flag.php');?>或<?php @eval($_POST["a"] ...
Web-文件包含
文件包含文件包含是一些文件包含函数产生的漏洞,如include,包含的是服务器的文件。其中include函数的特性,如果包含的文件是php,jsp等可执行的文件(png,jpg等不可执行)的话,会对文件进行解析,即执行一遍文件里的代码。
一般可以使用php伪协议读取相关文件内容。
PHP伪协议
其中,
file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响
php://协议:不需要开启allow_url_fopen,仅php://input、 php://stdin、 php://memory 和 php://temp 需要开启allow_url_include
php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是php://filter和php://inpu ...
Web-PHP特性
PHP特性php特性一般是一些类型之间的转换产生的漏洞或函数本身的漏洞等。
以下均为ctfshow web入门篇php特性练习题:
参考自https://blog.csdn.net/weixin_45551083/article/details/110494387
例题1、intval数组绕过1234567$num = $_GET['num'];if(preg_match("/[0-9]/", $num)){ die("no no no!");}if(intval($num)){ echo $flag;}
需要input != 0-9,且intval(input) == true
方法:数组绕过。
当input是数组(object)时,intval(input)会产生错误并返回1,同时pre_match(input)也会返回0。
例题2、intval进制绕过123456789$num = $_GET['num'];if($n ...
Web-命令执行
命令执行php相关函数介绍preg_match函数:过滤函数
1preg_match("/flag/i", $c) //判断c变量中是否包含flag字符串,/i为不区分大小写。
eval函数:系统调用函数,执行函数内命令。
两者通常结合使用。
以下题目均来自于ctfshow web入门练习题命令执行部分。
参考自https://www.cnblogs.com/IFS-/p/17126297.html、https://www.cnblogs.com/GCom/p/16947760.html、https://www.cnblogs.com/GCom/p/17303018.html
例题1、1234$c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); }
即判断c变量中是否包含flag字符串,通过则执行系统调用。
首先,构造url?c=system(“ls”); 页面回显:flag.php index.php,可以 ...
Web-爆破
爆破web中爆破题目通常分为两种:
一种是审计代码,一般是md5相关加密,分析代码编写脚本进行爆破,类似密码学。
另一种则是爆破相关信息,如登录密码或身份证号等。该爆破一般需要结合burpsuite的Intruder功能来发包爆破,根据响应的状态码或响应包大小找到正确密码。
例题1:ctfshow-web入门-web21
打开网站是一个登录页面,任意输入用户名admin和密码123,通过burpsuite抓包获取到如下内容:
123456789101112131415161718GET / HTTP/1.1Host: 3e2ac8dd-277f-4df1-a1a7-65d527096673.challenge.ctf.showConnection: closeCache-Control: max-age=0Authorization: Basic YWRtaW46MTIzsec-ch-ua: "Not)A;Brand";v="99", "Google Chrome";v="127", "Chrom ...