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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

XCTF(攻防世界)—新手web题Write Up

發布時間:2024/9/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XCTF(攻防世界)—新手web题Write Up 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:之前一直沒有接觸過web這方面的題,這次利用暑假時光好好學習,web真的是很有趣,雖然有的題很簡單,但可以學習到很多知識,話不多說,做題。

view_source

用老版火狐瀏覽器,直接查看源碼即可。

get_post


利用火狐進行傳參,即可得出flag。

robots

做這道題之前,了解一下robots協議,爬蟲協議,robots.txt搜索引擎中訪問網站的時候要查看的第一個文件,如果有這個文件,robots.txt文件告訴蜘蛛程序在服務器上什么文件是可以被查看的。

了解robots協議后,做題就好做了,直接訪問robots.txt文件。

給了一個PHP文件名,訪問一下即可得出flag

backup


不知道,百度百科一下

那加上后綴名即http://111.198.29.45:47771/index.php.bak再訪問一下,即可得出flag。

cookie

用burp抓一下包看看
添加后綴名
查看HTTP響應,即可得出flag

disabled_button


根據提示,將disabled刪除即可點出flag

webshell


一句話,用菜刀進行連接

連接成功,即可得出flag

simple_php

<?php show_source(__FILE__); include("config.php"); $a=@$_GET['a']; $b=@$_GET['b']; if($a==0 and $a){echo $flag1; } if(is_numeric($b)){exit(); } if($b>1234){echo $flag2; } ?>

is_numeric() 函數用于檢測變量是否為數字或數字字符串。

代碼很好理解,傳入對應的參數即可得出flag

http://111.198.29.45:52319/?a=a

即可得出

http://111.198.29.45:52319/?b=1236b

即可得出
拼接一下,即可得出flag

command_execution(命令執行)

做題之前,要先了解一下ping功能,waf等。
ping命令的使用方法及功能

WAF主要防護的是來自對網站源站的動態數據攻擊,可防護的攻擊類型包括SQL注入、XSS攻擊、CSRF攻擊、惡意爬蟲、掃描器、遠程文件包含等攻擊,相當于防火墻。

命令執行詳解

常見的命令執行

command1 & command2 :先執行command2后執行command1
command1 && command2 :先執行command1后執行command2
command1 | command2 :只執行command2
command1 || command2 :command1執行失敗,再執行command2(若command1執行成功,就不再執行command2)

除此之外,我們還要了解一些常用的Linux命令。常用 Linux 命令

了解之后,我們便開始做題。
首先ping一下本地即127.0.0.1

ping通本地后,發現傳輸三個數據包,接下來就用到我們學到的Linux基本命令
查看一下,三個數據包中是否有flag.txt
輸入命令127.0.0.1 & find / -name flag.txt

果然有,再輸入命令127.0.0.1 | cat /home/flag.txt查看flag.txt文件,即可得出flag。
這里得了解一下cat命令,用來查看文件內容

weak_auth( 弱身份驗證 )


試試最常用的admin 123456組合,竟然爆出了flag,真的是弱口令,不過查了其他方法,用爆破的方法也可以做出了,這里記錄一下爆破過程。

先在GitHub上下載弱口令字典,用burpsuite進行爆破

用admin作為賬號,試試登陸
看來賬號就是admin,那么就只爆破密碼就可以了
密碼隨便輸入一個,抓一下包


將密碼設置為變量
載入字典


發現到123456時,長度不同,所以密碼即為123456,登陸一下即可得出flag

xff_referer


在此之前,我們需要了解下

xff——偽造IP地址來源
格式為:
X-Forwarded-For: client1, proxy1, proxy2, proxy3
referer——偽造來源瀏覽器

偽造XFF頭繞過服務器IP過濾
了解之后,便能夠做題了

抓包,根據提示修改xff

此時頁面顯示必須來自https://www.google.com
根據提示,偽造來源服務器,即可得出flag

simple_js

打開之后,直接查看源代碼,發現一串JS代碼

function dechiffre(pass_enc){var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";var tab = pass_enc.split(',');var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;k = j + (l) + (n=0);n = tab2.length;for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));if(i == 5)break;}for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];if(i > 5 && i < k-1)p += String.fromCharCode((o = tab2[i]));}p += String.fromCharCode(tab2[17]);pass = p;return pass;}String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));h = window.prompt('Enter password');alert( dechiffre(h) );

要做這道題就得看懂JS代碼表達的意思,首先來了解代碼中出現的一些方法

split() 方法用于把一個字符串分割成字符串數組。
fromCharCode() 可接受一個指定的 Unicode 值,然后返回一個字符串。
prompt()方法用于顯示可提示用戶進行輸入的對話框。

了解之后,便可以觀察代碼了
這一部分代碼分為兩個循環,但是仔細觀察的話,第一個循環是將前五個Unicode 值,然后返回一個字符串,寫一個簡單的python腳本驗證下

后一個循環功能是一樣的,只不過是把后面的Unicode 值,返回成字符串。

返回的pass為
即不管我們輸入什么,最終顯示都是這個,所以這個是假的密碼,那么真正的密碼應該就是

十六進制轉化為文本字符

再用簡單的python跑一下,即可得出flag

題雖然不是太難,但是可以學習到很多知識,接下來得快點學習python以寫腳本用,方便做題。

總結

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

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