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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

攻防世界web

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 攻防世界web 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

攻防世界web

前言

準備ctf比賽,這里把攻防世界分值低于5分的基本刷了一遍(分值再高刷不動了…)

練習

  • view_source

    沒難度知識禁用了右鍵點擊,ctrl+u查看源碼拿到flag

  • get_post

    這題沒什么好說的,按著提示來就能拿flag

    但我發現下面的hackbar不能用后用burp來進行post傳參不返回flag…迷了我很久…

    結果我下了左邊那個hackbar后重來一遍,結果就返回flag了,很迷,我burp肯定沒用錯啊…

  • robots

    這道題也沒什么好說的啊,考一個robots協議的理解(就是在玩爬蟲時我們從來沒有理會的一個協議…),這里查看robots協議,看到flag的php訪問拿到flag

  • backup

    這道題還是有點意思,考查一個備份文件,因為前面剛看了源碼泄露方面的東西,結果這里一來就直接想到了vim的文件備份結果試~,沒有…這時候一看人家也沒提示說vim,正常的備份一般是加,.bak(比較常見的方法,當然手動備份也可以自己來取名,但程序員我感覺還是會偏向于統一)然后訪問就可以下載到備份文件,查看文件拿到flag

    參考:備份文件:被低估的Web威脅

  • cookie

    這道題也沒什么說的,訪問網頁檢查元素查看cookie,看到cookie.php,然后直接訪問

    看到提示說查看response,響應頭就藏著flag

  • disabled button

    這道題也沒什么意思,有個按鈕,查看源碼可以發現是個input輸入框,那直接post發送數據過去就得到flag了

  • simple js

    從題目就可以看出是一道javascript題

    訪問頁面,查看源碼,可以看到js代碼

    分析得到下面的16進制的字符就是flag內容…(js確實有待學習加強,這里看了好久…)

  • xff referer

    這道題也是比較初級的

    我是用兩個插件解決的

    第一個它要求ip是123.123.123.123,我用的是X-Forwarded-For Header,

    第二個要求是來自 www.google.com 這個用hackbar添加的Referer

    當然直接抓包添加

    X-Forwarded-For: 123.123.123.123
    Referer: www.google.com

    這兩個參數也行

  • weak auth

    這道題是個弱密碼題,隨便嘗試登錄,會告訴你用admin來登錄

    然后查看源碼會提示你需要一個字典,這就很容易想到暴力破解了吧

    這里用burp來嘗試暴力破解

    可以看到密碼是123456的時候返回長度與別的都不一樣,嘗試用admin,123456來登錄,登錄成功獲得flag

  • webshell

    這道題考查菜刀的使用,用過的話就沒什么難度

    題目描述中提示了一句話木馬是index.php,訪問網頁看到一句話是<?php @eval($_POST[‘shell’]);?> ,得到’密碼‘是shell,菜刀連接,文件管理就可以看到flag了

  • command execution

    刷過dvwa應該都知道這個漏洞,這也和dvwa的low級別沒什么差別

    這里先127.0.0.1 & find / -name “flag.*” 來查找flag文件的位置(找不到的話可以試下找flag文件)

    然后看下圖可以發現找到了

    然后cat 文件得到flag

  • simple php

    代碼審計,這個代碼還是比較簡單易懂的

    這里看代碼就能明白,這里考的是php的==和===

    eg : $a = ‘123’; $b = 123;

    ? $a === $b為假; $a == $b為真;

  • ics-06

    這道題拿到的時候也沒有什么好的思路,主頁面點擊沒什么反應,查看代碼后發現點擊報表中心會跳轉到index.php。跳轉后可以看到Get傳了一個id值,我這里以為是sql注入,結果沒注出來。后面發現,這里是要暴力破解,id等于2333的時候出結果2333

  • Training-Get_Resourced

    這道題直接在描述里提示了看注釋就是看頁面源碼,進入頁面也有一行比較淡的字提示看源碼,打開源碼就能直接得到flag,沒什么意思…

  • Training-WWW-Robots

    還是考查robots協議啊,訪問robots.txt那里不讓訪問就去訪問那里,就得到flag

  • NaNNaNNaNNaN-Batman

    這道題對我還是挺難的,因為不怎么會(不會)js…

    題目是給了個附件,以為是代碼審計,也確實是代碼審計,不過里面是亂碼,但不全是亂碼,能看出<script>,<eval>這些標簽,很顯然是個html文件,大概也能看出,前面是個函數,然后eval去執行,這里是把eval改為alert彈出非亂碼形式的源碼

    分析其實可以直接運行里面的代碼拿到flag,而不用去構造前面的匹配

    然后可以看到直接出flag了

  • NewsCenter

    這道題進去的時候也是比較懵,但看了下源碼也就search那里可以操作,這種搜索框很容易想到sql注入,輸入1查詢正常,輸入1’查詢崩潰。OK存在注入,然后按照注入步驟來,整體很簡單,dvwa low級別的難度吧手工很好注出來,sqlmap也能很好注出來

  • lottery

    這道題有點難了…(菜雞的無助)

    這道題很顯然是讓我們去輸入7個數字然后與答案匹配獲得金幣,然后購買flag

    抓包,發現cookie有提示說看cookie.php,但并不能訪問

    然后我想能不能改個PHPSESSID來改換賬戶購買,但md5試了下破解不了,而且我們也不知道有別的賬號

    陷入僵局…

    然后我看了下別人的提示說看下robots.txt

    OK看到里面的提示就很熟悉了,最近剛好看了源碼泄露的一些資料,還正好想試下GitHack這個工具…

    使用githack工具

    我們成功下回了源碼,通過burp前面的代理我們可以看歷史,發現我們buy的時候會訪問api.php

    這時候就是代碼審計了

    可以看到buy的代碼片段,這里又考查的是==這個知識點

    抓包可以看到是驚悚格式數據,然后$number也沒有檢查數據類型

    OK,像上面那樣改包就能成功贏的金幣,然后就能購買flag了

  • upload

    這道題我也很無語,很簡單的文件上傳漏洞用burp抓包或者禁js都能上傳成功,上傳的phpinfo也能訪問成功,但我一句話就是連不上…我看別人的博客都是一句話能連上,很無語,最后上傳了一個大馬直接訪問猜拿到flag…現在還是沒懂為什么一句話沒連上…

  • mfw

    這道題還是挺繞的

    首先是查看源碼,看到注釋里面有?page=flag

    結果并沒有返回

    然后再翻看網頁,看到提示說他用到了git想到源碼泄露,githack用起來

    很開心看到下載到了flag.php,結果打開是空的,真的只是模板

    里面有用的就是index.php了,這時候就變成代碼審計了

    這里有個assert函數,這個一句話中也有用這個函數的

    如果 assertion 是字符串,它將會被 assert() 當做 PHP 代碼來執行。跟eval()類似, 不過eval(assertion)只是執行符合php編碼規范的assertion)只是執行符合php編碼規范的assertion)phpcode_str。

    所以我們要利用這一點來執行我們的命令

    這里我感覺和注入是差不多的,因為沒有過濾,所以我們可以注入些我們想要執行的東西

    assert(“strpos(’$file’, ‘…’) === false”) or die(“Detected hacking attempt!”);

    有兩句assert,我們拿上一句來進行注入,首先我們隨便構造一個文件名來閉合strpos,x’),然后

    我們有or來拼接我們要執行的語句,因為前面隨便構造的文件所以會為false,我們后面的命會執行,or system("cat templates/flag.php "); //并注釋掉后面的

    page=x’) or system(“cat templates/flag.php”);//

    這里自己php水平太菜所以看得別然人的,我總感覺上面assert沒有閉合呢…但問題是上面的語句能正常運行,我想的反而不太對…php不愧是世界上最好的語言好難懂

    assert("strpos(’$filex’) or system(“cat templates/flag.php”);// 怎么看都不像閉合了呢

    然后查看源碼就能看到flag了

    這題考查的就相對繞了一些不像前面的題只考一個知識點那樣了。

  • FlatScience

    這個有點難了對于我這樣的菜雞來說

    首先登陸網站后發現有很多pdf就沒什么收獲了

    這時候查看robots.txt(主要看有沒有提示什么后臺登陸吧,現實中在robots里添加后臺登陸也是比較常見的)或者用網站路徑掃描器來掃描也是沒問題的

    這時候登login.php可以看到是個登陸界面,admin.php也是一個登陸界面

    看源碼可以看到login.php中有提示

    按照提示我們加?debug去訪問,然后發現有源碼,進入代碼審計

    可以看到有數據庫查詢語句,很明顯存在注入(因為沒有過濾),但這里的難點在于用的是sqlite這個數據庫,雖說sql注入原理都一樣,但實現細節還是不一樣的…

    注入手法一樣,先order by看字段數,這里注釋符號用 –

    3的時候報錯所以有兩個字段

    源碼分析可以看到setcookie,這還是一個比較簡單的sql注入,有返回值

    usr=’ union select name,sql from sqlite_master–

    可以看到有user表,我們關心的name,password和hint(因為代碼審計可以看到密碼存儲sha1的方式,所以肯定還需要提示來破解)

    ’ union select group_concat(name),group_concat(name) from Users –

    ’ union select group_concat(password),group_concat(password) from Users –

    ’ union select group_concat(hint),group_concat(hint) from Users –

    這里我是看到最后的hansi用戶它的提示是password is password然后嘗試登陸,不行登不上…

    其次有用的提示就是admin了,他最喜歡的paper中最喜歡的詞…這個就很像啊,因為前面給了那么多的pdf…

    我看了下后面的思路,主要是先爬取下來所有的pdf,寫py腳本將pdf轉為文本文件(主要用到pdfminer模塊),然后再每篇文章一個詞一個詞的提取出來進行sha1計算(按照代碼中的加鹽),和我們sql注入出來的sha值比較一樣的就停止得到密碼

    然后再admin.php界面登錄得到flag

    這里貼一下別人的py代碼吧

    from cStringIO import StringIO from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import TextConverter from pdfminer.layout import LAParams from pdfminer.pdfpage import PDFPage import sys import string import os import hashlibdef get_pdf():return [i for i in os.listdir("./") if i.endswith("pdf")]def convert_pdf_2_text(path):rsrcmgr = PDFResourceManager()retstr = StringIO()device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())interpreter = PDFPageInterpreter(rsrcmgr, device)with open(path, 'rb') as fp:for page in PDFPage.get_pages(fp, set()):interpreter.process_page(page)text = retstr.getvalue()device.close()retstr.close()return textdef find_password():pdf_path = get_pdf()for i in pdf_path:print "Searching word in " + ipdf_text = convert_pdf_2_text(i).split(" ")for word in pdf_text:sha1_password = hashlib.sha1(word+"Salz!").hexdigest()if sha1_password == '3fab54a50e770d830c0416df817567662a9dc85c':print "Find the password :" + wordexit()if __name__ == "__main__":find_password()
  • upload

    使用了我所知的一切方法進行上傳,burp,文件截斷…但完全不行,后臺對文件進行校驗,也沒文件包含漏洞,卡主,毫無頭緒…

    后面看writeup說這是一道注入題…

    這是一道insert注入題,insert注入聽過,但沒練習過…但原理我覺得就是插入數據的時候有些值插入成database()這種,后面顯示的時候就會顯示出數據庫名。這里我們上傳文件后會顯示下圖的信息

    后面會重定向到初始頁面顯示上傳過的文件名

    這里有了查詢操作所以存在了二次注入的可能

    這里的注入也特別麻煩,有很多過濾規則…

    參考

    2015年rctf web150 (Update set 二次注入)

    RCTF2015+XCTF復現之一次上傳的圖片的文件名造成注入

    但注入出來的結果我提交為什么不對了…(好吧不要按它說的格式來,直接交才正確…)

  • php2

    頁面就沒什么信息,先查看robots.txt沒有,再查看常用的幾個界面,admin.php,login.php,index.php都沒有…

    路徑掃描吧,掃出來會發現有index.phps(我是沒掃出來,看了別人的字典添加后掃出來…)

    訪問,可以看到有部分代碼片段,查看源碼,能看到詳細代碼,變為代碼審計

    這里就是要我們構造一個合適的id就能得到flag,可以看到需要的id進行urldecode后要等于admin,這就是二次編碼,因為服務器接受到數據后會進行一次url解碼,然后代碼又解一次

    二次編碼,可以自行百度下,我看別人都是用御劍來做的,這里admin比較短查表也方便吧

  • 總結

    以上是生活随笔為你收集整理的攻防世界web的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。