Java之RMI简单总结
概念 **RMI: 远程方法调用(Remote Method Invocation)**,它支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。
Java RMI: 用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。
Java使用一种序列化的方式来实现远程调用。
原理首先了解一下RMI的交互图,RMI主要由三部分组成,即RMI Client、RMI Service、RMI Registry
首先,先启动rmiregistry服务,启动时可以指定服务监听的端口,也可以使用默认的端口(1099)。
其次,server端在本地先实例化一个提供服务的实现类,然后通过RMI提供的aming/Context/Registry(等类的bind或rebind方法将刚才实例化好的实现类注册到rmiregistry上并对外暴露一个名称。
最后,client端通过本地的接口和一个已知的名称(即rmiregistr ...
Java安全初步
之前一直没有系统的对Javaweb的安全做一个系统的学习和总结,主要原因也是没有怎么熟悉Javaweb的开发细节,在学习了一段时间的Javaweb之后,决定开始就Javaweb代码层面的安全做以学习和总结。
Symfonos3-shellshock
日常靶机
主机开了21,22,80端口,然后用dirb扫一下目录看看
扫出了cgi-bin,接着扫,在cgi-bin目录下扫到了一个underworld目录
访问
显然这个页面的显示是uptime命令的回显结果
这里是一个shellshock的漏洞,直接用MSF的EXP一把梭
拿到shell之后,考虑提权
先用linPEAS脚本跑一下
然后可以找到tcpdump的cap
下载工具pyps
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.0/pspy64\
pspy是一种命令行工具,旨在无需root权限即可监听进程。它使您可以查看其他用户执行的命令,cron作业等。非常适合枚举CTF中的Linux系统。很好地向您的同事展示为什么在命令行中将秘密作为参数传递是一个坏主意。 该工具从procfs扫描中收集信息。放置在文件系统选定部分上的Inotify观察程序将触发这些扫描,以捕获短暂的进程。
ftp协议是明文传输的,如果能抓到ftp的包,那就可以得到账号密码了。那么使用什么工具抓包 ...
Symfonos2:啊这啊这
日常靶机
照常扫扫
139端口和445端口开着,先连上共享文件
整出来一个log.txt文件
审计这个日志,发现用户名是aeolus
然后没有其他信息的情况下,试试爆破ssh
hydra -l aeolus -P /usr/share/wordlists/metasploit/unix_passwords.txt ssh://192.168.40.156
爆出来密码sergioteamo
然后连上
上去用nmap扫自己,扫出了好东西
看看这个8080端口,只允许本地访问,这个好办,直接端口转发
ssh -L 8080:127.0.0.1:8080 aeolus@192.168.11.129
然后访问一下
是个叫做librenms的站,MSF搜到exp,直接一把梭拿到shell
然后MySQL提权成root
拿到final flag
Symfonos:SMTP与LFI
日常靶机
扫出靶机IP
然后用nmap来获取主机信息
可以看到,主机开启了25端口的SMTP服务
于是直接连接上共享
smb://192.168.40.155
然后打开不需要密码的目录
这里基本上给了信息,用这几个密码尝试连接helios目录,发现qwerty可以
访问h3l105,发现了一个wordpress搭建的站点
点击链接会跳转到http://symfonos.local,所以在本机的hosts里面加上这个IP和域名的映射
因为是WP搭的站,直接用wpscan扫一下
wpscan –url http://symfonos.local/h3l105
扫到了两个插件
然后去searchsploit试试,扫出来两个洞,其中有个本地文件包含
然后根据给定的poc去尝试漏洞
那么联系到之前扫到的25端口的smtp服务,可以试图通过邮件污染的方法进行RCE
发送一个有问题的邮件,然后弹一个shell过来
[http://192.168.40.155/h3l105/wp-content/plugins/mail-masta/inc/campaign/cou ...
DC-1:SUID提权初体验
日常靶机
靶机开启,直接arp-san -l
扫到IP之后nmap扫着看看
可以看到开启了22,80端口,用工具可以看到CMS为drupal
直接启动MSF
service postgressql start
msfdb init
msfconsole
打进去了,然后通过python拿到shell
翻翻找找,在home目录里面拿到了一个hint
find提权根据这句提示,我们可以想到通过SUID的可执行文件来提权
以下几个命令可以用来找到系统中运行的SUID文件
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 2> /dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
有find,好办了,直接利用find执行命令
提权成功,可以在root目录里面拿flag了
当然,这种玩法没有拿到所有flag,我们继续
打数据 ...
BUUCTF-WriteUp合集(3)
刷题记录:
BUUCTF-WriteUp合集(2)
刷题记录
[CISCN2019 华东南赛区]Web11知识点:
Smarty SSTI
XFF
题目打开后,提示了Build With Smarty !,于是猜测存在Smarty SSTI,右上角有回显的IP。然后题目提示有XXF,抓个包直接改XFF为Smarty SSTI的payload,没想到直接打通了。
关于Smarty SSTI可以看这篇文章
https://zhuanlan.zhihu.com/p/91595921
[CISCN2019 华北赛区 Day1 Web5]CyberPunk看前端源码的注释
怀疑有文件包含,伪协议直接读文件内容,成功
index.php:
1234567891011121314<?phpini_set('open_basedir', '/var/www/html/');// $file = $_GET["file"];$file = (isset($_GET['file']) ? $_GET['file'] : null); ...
智能合约安全入门:ETHERNAUT-WriteUp(3)
本来说下次一定(咕咕咕),突然周天又没啥事情,干脆做完好了。
0x00 Naught Coin1234567891011121314151617181920212223242526272829303132333435pragma solidity ^0.4.18;import 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol'; contract NaughtCoin is StandardToken { using SafeMath for uint256; string public constant name = 'NaughtCoin'; string public constant symbol = '0x0'; uint public constant decimals = 18; uint public timeLock = now + 10 years; uint public INITIAL_SUPPLY = ( ...