JVM面试必问:G1垃圾回收器
摘要:G1垃圾回收器是一款主要面向服务端应用的垃圾收集器。 本文分享自华为云社区《JVM面试高频考点:由浅入深带你了解G1垃圾回收器!!!》,原文作者:Code皮皮虾 。 G1垃圾回收器介绍 G1垃圾回收器是一款主要面向服务端应用的垃圾收集器。作为垃圾回收器技术发展史上里程碑的成果,G1垃圾回收器不同于以往的垃圾回收器,首先是思想上的转变,如下图: G1对于Java堆的划分 上面的图,小伙伴们第一次看可能不咋明白,因为各位还不了解G1,看看下面的话,应该就差不多了。 G1垃圾回收器对于Java堆区域的划分不同于以往我们对Java对区域划分的认知 以往对于Java堆区域的划分为:新生代和老年代,新生代又划分为 Eden区和 Survivor区,Survivor区又分为 from区和 to区。 但是现在,G1不再坚持固定大小以及固定数量的分代区域划分,而是把连续的Java堆空间划分为多个大小相等的独立区域(Region),每个Region都可以成为 Eden空间、Survivor空间、老年代空间。 这种思想上的转变和设计,使得G1可以面向堆内存任何部分来组成回收集来进行回收,衡量标准不再是...

逐个查看,接着,对各个站点进行指纹识别,可以知道站点是否为已知的CMS、使用何种语言或框架等。有时候,云悉可能没有扫出来,可以使用firefox的插件wappalyzer。在云悉可以查看“该单位其他域名”,这个也可以获得更全面的信息。再收集一下备案信息,也可能有意料之外的收获。
接着,对已知的站点IP使用在线的端口扫描工具进行扫描,识别开放的端口;最后,对GitHub、以及谷歌搜索收集到的信息,进行整合,并作详细记录。当然,中间我省略了像是whois等的搜集。关于信息收集,就不多说了。
ThinkPHP 5.0.x和5.1.x存在RCE,直接拿出payload怼上去就好了。可以看到权限很高,但是无奈,怎么都写不进文件,但这也不能说是绝对的坏事。这时候,拿给妹子看了一下,“哦,很厉害啵,哼”。啊,可以感受到妹子已经被我的速度震惊了——这么快!
但我不能骄傲,我还要继续,“哦,那你去吧”,看吧,妹子在鼓励我,盘它! 然而,jxxxx.com的只剩下1个登录框,2个UPUPW_NP页面,然而,对登录框以及PHPmyadmin进行了爆破,都没有进展——啊咧!是我骄傲了嘛?
此时尝试写入webshell文件,
在另一个站点demo.fxxxx.cc上,如法炮制了一个shell出来。如下:
随手又给妹子看了,“哼!不理你了,以后别找我打牌了”!咦,我赢了呀,妹子干嘛不跟我打牌了?妹子一定是看我赢了恼羞成怒,真小气。我继续搞。
在crm.fxxxx.cc的shell上开终端,添加管理员账户,成功添加进管理员用户组。但是远程桌面登录时,提示连接被拒绝,没有被授权进行远程登录:
平时碰到这样的情况,如果是权限不够不能添加,可以先提权,获取system权限。如果已经是该权限了,还是不能,可以抓取管理员的明文密码。常用procdump获取内存文件lsass.exe进程中存储的明文登录密码,接着使用mimikatz读取lsass.dmp,这样就可以了。但是,这个过程,你还需要让管理员登录,这样才能抓取到明文密码,否则将读取到(null)。所以,此时需要修改注册表,强制锁屏,这样,管理员看到后会重新登录,这样就可以抓取到明文密码了。 然而,折腾了一番,管理员或许是跟妹子打牌去了,没有获取到,我去! 翻看了一下源代码,取了3个数据库的登录信息。以下只贴出了crm.fxxxx.com的两个数据库:
没什么说的直接连接就好了,没敢乱动数据,毕竟在里面不能玩手机,怎么和妹子打牌: 
