XCTF web新手區
- 1.view_source
- 2.robots
- 3.backup
- 4.cookie
- 5.disabled_button
- 6.weak_auth
- 7.simple_php
- 8.get_post
- 9.xff_referer
- 10.webshell
- 11. command_execution
- 12.simple_js
1.view_source
F12查看原始碼

2.robots
根據題目提示訪問http://111.200.241.244:55133/robots.txt
發現flag檔案
訪問http://111.200.241.244:55133/f1ag_1s_h3re.php

3.backup

方法一:如果網站存在備份檔案,常見的備份檔案后綴名有:“.git” 、“.svn”、“ .swp”、“.~”、“.bak”、“.bash_history”、“.bkf” 嘗試在URL后面,依次輸入常見的檔案備份擴展名,
嘗試到bak時發現備份檔案
下載后打開發現flag

方法二:
直接上手目錄掃描工具(這里我用的是dirmap)
下載地址:dirmap

發現備份檔案地址后續操作同上,
4.cookie

查看資料包
在請求頭里面發現cookie值有問題,然后訪問cookie.php
查看回應頭,發現flag.(也可以直接使用burp抓包)

5.disabled_button
方法一:將disable=“”去掉,再點擊按鈕

方法二:審計from表單,使用post傳參auth=flag

6.weak_auth
隨便登錄然后提示用戶必須是admin
之后嘗試弱密碼123456 ,admin, root等,我這里試出來密碼123456
登進去之后發現答案

也可以爆破,
字典地址:常用密碼
爆破發現密碼為123456,登進去發現flag,
7.simple_php
(1)這里包含了config.php
(2)url接收引數a和b的值
(3)如果$a等于0 and a , 輸 出 a,輸出 a,輸出flag1
(4)如果$b是數字或者字串那么退出當前腳本
(5)如果$b>1234,輸出$flag2,所以,這里我們既要保證輸出$a,$b,又要保證$b是數字,那么就用到php的弱型別比較了
掌握php弱型別比較
php中其中兩種比較符號:
==:先將字串型別轉化成相同,再比較
===:先判斷兩種字串的型別是否相等,再比較
字串和數字比較使用==時,字串會先轉換為數字型別再比較
var_dump('a' == 0);//true,此時a字串型別轉化成數字,因為a字串開頭中沒有找到數字,所以轉換為0
var_dump('123a' == 123);//true,這里'123a'會被轉換為123
var_dump('a123' == 123);//false,因為php中有這樣一個規定:字串的開始部分決定了它的值,如果該字串以合法的數字開始,則使用該數字至和它連續的最后一個數字結束,否則其比較時整體值為0,
舉例:
var_dump('123a1' == 123);//true
var_dump('1233a' == 123);//false
is_numeric () :如果指定的變數是數字和數字字串則回傳 TRUE,否則回傳 FALSE,注意浮點型回傳空值,即 FALSE,
隨便傳個符合條件的a b引數:http://111.200.241.244:57673/?a=c&b=46758.333

8.get_post


工具hackerbar.也可以使用burp
用get post傳參即可得到flag.
9.xff_referer

xff是告訴服務器當前請求者的最終ip的http請求頭欄位
通常可以直接通過修改http頭中的X-Forwarded-For欄位來仿造請求的最終ip
再根據提示設定referer得到flag

10.webshell

使用蟻劍鏈接,發現flag

11. command_execution
預備知識:
command1 & command2 :不管command1執行成功與否,都會執行command2(將上一個命令的輸出作為下一個命令的輸入),也就是command1和command2都執行
command1 && command2 :先執行command1執行成功后才會執行command2,若command1執行失敗,則不執行command2
command1 | command2 :只執行command2
command1 || command2 :command1執行失敗,再執行command2(若command1執行成功,就不再執行command2)
這里我們嘗試使用命令連接符,因為我們知道flag在flag.txt中,所以我們查找該檔案
127.0.0.1 & find / -name flag.txt

127.0.0.1 & cat /home/flag.txt

12.simple_js
隨便輸個密碼后查看頁面源代碼

進行代碼審計,發現不論輸入什么都會跳到假密碼,真密碼位于 fromCharCode
先將字串用python處理一下,得到陣列[55,56,54,79,115,69,114,116,107,49,50]
s="\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"
print (s)
再將所得到的ASCII碼轉化為字符,得到786OsErtk12
a = [55,56,54,79,115,69,114,116,107,49,50]
c = ""
for i in a:
b = chr(i)
c = c + b
print(c)
根據題目提示規范格式即可得到flag
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294638.html
標籤:其他
