全國高校網(wǎng)安聯(lián)賽X-NUCA·2016冠軍隊伍writeup
小編寄語:
“全國高校網(wǎng)安聯(lián)賽(National University Cybersecurity Association,簡稱X-NUCA)”是面向全國高校學生的網(wǎng)絡安全技能競賽,旨在更好地促進國家網(wǎng)絡安全人才的培養(yǎng)和選拔。第一期的聯(lián)賽主題為Web。
0x01 sign
題目:Good Luck!flag{X-nuca@GoodLuck!}
0x02 BaseCoding
提示:這是編碼不是加密哦!一般什么編碼里常見等號?
題目:這一串字符好奇怪的樣子,里面會不會隱藏什么信息?
http://question1.erangelab.com/
Base64……
0x03 BaseInjection
提示:試試萬能密碼
題目:不知道密碼也能登錄。
http://question2.erangelab.com/
1'or'1'='1直接繞過(30,50的payload一樣)
0x04 BaseReconstruction
提示:對數(shù)據(jù)包進行重構是基本技能
題目:此題看似和上題一樣,其實不然。
http://question3.erangelab.com/
只不過是本地驗證,抓包繞過,payload同上
0x05 CountingStars
提示:一不小心Mac也側漏
題目:No more $s counting stars.
http://question4.erangelab.com/
查看源碼可以看到有個提示是說mac系統(tǒng)的,所以直接下載DS_Store,里面可以看到有一個zip
下載后拿到index源碼
直接echo $$$……S 就出來了
0x06 Invisible
題目:隱藏IP來保護自己。
http://121.195.186.234
這個沒有印象了,應該是改xff 127.0.0.1
0x07 Normal_normal
提示:phpwind 后臺getxxxxx
題目:又是一個bbs。
http://question6.erangelab.com/
一開始寫的是phpbb,搜了半天發(fā)現(xiàn)那些12年的漏洞沒什么卵用,論壇里面有個帖子,留了一個郵箱zhangrendao2008#126.com,然后無聊的我跟郵箱發(fā)了個郵件,然后不知道哪個師傅就開始跟我聊天了
然后就懂了啊,立馬去126的褲子里面找到了密碼
登了郵箱發(fā)現(xiàn)沒什么用,直接拿密碼去登了后臺,后臺的功能都被刪了,只有個模板管理的,進去后發(fā)現(xiàn),,,全是這個!!!我服……誰寫的,出來保證不打你!
最后在調(diào)用代碼里面找到了幾個鏈接,挨個試了試,把xml改成txt就出來了
http://question6.erangelab.com/index.php?m=design&c=api&token=BvNWdJUDHV&id=11&format=txt
0x08 DBexplorer
提示:a.SELECT @@datadir 。。。mysql/user.MYD b.user.MYD
題目:Where is my data。
http://question7.erangelab.com/(請不要修改密碼!)
這個題也是奇葩,其實不是難。最開始源碼里面提示,vim老套路,.db.php.swp,但是沒有index的源碼,從db中找到了數(shù)據(jù)庫賬號和密碼,還有phpmyadmin路徑
登上去還沒玩一會密碼就被改了,然后整個目錄被秒刪。也是醉了,后來就沒什么了,最開始早就找到了路徑,但是一直沒想到去導出user.MYD,一直在想辦法怎么把外面的文件導進去,tmp目錄是可以寫的,從swp里面找到了絕對路徑,但是/var/www/html目錄下的文件一直都是NULL,后來有了提示,最開始想到的是自己本機的傳上去然后覆蓋user.MYD,但是路徑怎么也不對,/var/lib/mysql這個路徑早就找到了,但是智障的我,以為win跟linux是一樣的,總以為數(shù)據(jù)庫應該在data目錄下面,mdzz,所以就成了 /var/lib/mysql/data/mysql/user.MYD,然后就一直智障了下去…… 不過在執(zhí)行語句的時候,看到了各種大牛在導出,源碼,passwd,各種都有
所以就留意了一下,如果有大牛成功導出的話,應該所有人都可以看到的,所以就一直在刷新,,,終于大牛出現(xiàn)了,然后直接就復制了下來……Orz
反正最后我也沒有導出成功,之所以拿下是在執(zhí)行命令的時候,突然看到了一個大牛導出的user.MYD,然后瞬間保存了下來,最后topsec topsec123456登上去,拿下了flag(手速慢了,一血也是這么被拿下的,給@ming師傅手速點贊 )
最后問了下師傅們,師傅們給的命令,沒法復現(xiàn)了,自己本地搭環(huán)境試試吧 LOAD DATA INFILE '/var/lib/mysql/mysql/user.MYD' INTO TABLE q fields terminated by 'LINES' TERMINATED BY '\0'
0x09 RotatePicture
提示:urlopen file schema
題目:轉(zhuǎn)轉(zhuǎn)轉(zhuǎn)。
http://question8.erangelab.com/picrotate
看到題目直接試了下file:///etc.passwd 可以讀到一行,然后就不會玩了,后來看了下源碼有個view.py。直接扔進去試試,得到了:we hava a view named "getredisvalue" 直接訪問:http://question8.erangelab.com/getredisvalue
搜了下前短時間出來的那個Python urllib HTTP頭注入 http://www.tuicool.com/articles/2iIj2eR 直接上payload試了下,隨便設置個uuid
提交uuid得到flag
0x10 AdminLogin
題目:On the way in。
http://121.195.186.238/index.php
這個題一開始是q9,后來改成了ip,所以最后一步xff一直過不去,不過最后還是被機智的我發(fā)現(xiàn)了…… 題目可以直接加referer用sqlmap跑,不過我是直接手工注的,解密是administrat0r
robots.txt里面有后臺路徑
然后估計大家都被坑在這里了,進去之后一直都是where……
也是醉了,最后腦洞打開,bugsacn掃了下,掃到了svn,直接腳本跑了下找到了路徑http://question9.erangelab.com/xnucactfwebadmin/welcometoctfloginxxx.php 直接登錄提示:Illegal IP ... expect 8.8.8.8 這很簡單啊,xff就過了,然并卵
怎么改都不過,辣雞,后來我都試了最新的xff格式,還是不行 Forwarded: for=192.0.2.60; proto=http; by=203.0.113.43 只能有一個解釋啊,題目有坑,回去重新看了下題目,鏈接竟然改了,改成了http://121.195.186.238/ xff秒過,厲害……
得到一張圖片,直接扔火狐就好了
0x11 WeirdCamel
提示:a.小駱駝的%和@真是蛋疼 b.嗯……URL轉(zhuǎn)義有時候會失效 c.也許變量能夠覆蓋哦 題目:歡迎報名夏令營,請您仔細閱讀公告,之后我們將會審核您的報名信息。
http://question10.erangelab.com/
這個一開始完全沒思路,500太坑,最后又來了個提示,變量覆蓋(post:name=a&name=STATEMENT&name=register.pl),直接拿到了源碼
可以直接命令執(zhí)行(post: name=1&name=STATEMENT&name=|ls|) 然后翻了下目錄,沒找到flag,不過有個xnuca_looktheregisternews.pl
源碼:
然后就是彈shell了,上py腳本,直接反彈shell出來 登mysql提示: Access denied for user 'xnuca_user'@'localhost' to database 'xnuca_news_db' when using LOCK TABLES 我服,寫了個py腳本去讀所有字段,提示: ImportError: No module named MySQLdb 我服,還打算寫個php的,后來發(fā)現(xiàn)內(nèi)核版本有點老啊,ubuntu的,上exp https://www.exploit-db.com/exploits/37292/
我服,又穿了,中午穿過一次了…… 最后看師傅們都在使勁傳腳本,彈shell,無奈了,太菜害怕被超,最后十幾分鐘干了點缺德事,抱歉抱歉……
不過最后發(fā)現(xiàn),刪了以后有點虧,因為拿到了root密碼xgsqggxwalspassw0rd,不知道是否通用啊,如果通用的話,那500也就可以拿下了……Orz
0x12 OneWayIn
題目:How can I get in。
http://question11.erangelab.com/
(這題全靠記憶,流程一點都記不得了,湊合看吧……) 首先查看源碼,弱類型登錄
跳轉(zhuǎn)http://question11.erangelab.com/flag_manager/index.php?file=dGVzdC50eHQ=dGVzdC50eHQ=解密后是test.txt, 去掉參數(shù)后會直接跳轉(zhuǎn)到index.php?file=dGVzdC50eHQ=&num= 將file換成index.php讀源碼,num是行數(shù) http://question11.erangelab.com/flag_manager/index.php?file=aW5kZXgucGhw&num=2
把cookie改成flagadmin去讀取flag.php源碼,是混淆加密過的
這樣直接copy去解密肯定是不行的,我用python request取解密也沒成功,最后curl取出來,在線解密三塊錢搞定了,然后base64。
還有一種不用解密的方法。。
直接在本地運行php,localhost會提示
改成127.0.0.1……錢都花了,才想起來,hhh