直接修改input 標籤裏的maxlength 爲999突破長度限制,使得能輸入大於999 的數,而後隨便輸一個數字就好了php
或者post修改值css
strcmp 漏洞,傳入爲數組時會出錯,致使返回爲0,因此傳入password[]=1
,獲得flaghtml
簡單?不存在,坑你沒商量。看看它說了啥吧python
第二關須要從 http://edu.xss.tv 進入,而且只有我公司的IP地址才能夠進入第二關,公司IP爲:110.110.110.110
我開心的改了XXF,而後去訪問給出的網址,而後進入了一個練習平臺。So?Then?flag在SQL 注入的數據庫裏?抱着嘗試的姿態作了一下,emmm,哪有關於flag 的東西???git
嗯,當你訪問給出的網址的時候你就輸了,其實這個網址就是混淆視聽的,徹底不須要訪問,它實際上是Referer 來的,因此在第一關僞造XXF頭,添加Referer值就能進入第二關github
第二關須要提供一個密碼,在哪呢?看源碼,發現一個password.js,看下寫了什麼,在最後獲得一串亂碼,提交檢查不對,拿去base64 解密獲得sql
<script>alert("password:xinyiji.com")</scripta>
數據庫
提交xinyiji.com
獲得flag數組
簽到題,直接源碼得flagcookie
這題莫名奇妙,提示關鍵點在XSS,結果作題全靠解密。。。
將頁面裏那個一看就不正常的url 解密一下,獲得
callback=+/v+ +ADwAcwBjAHIAaQBwAHQAPgBhAGwAZQByAHQAKAAiAGsAZQB5ADoALwAlAG4AcwBmAG8AYwB1AHMAWABTAFMAdABlAHMAdAAlAC8AIgApADwALwBzAGMAcgBpAHAAdAA+AC0-
咱們知道+/v++ 是表明utf-7 編碼,這種編碼會使其餘的字元被編碼成utf-16,而後轉換爲被修改的Base64,這些區塊的開頭會以+ 符號標示,結尾則是以任何不在Base64 裏的字元標示,因此咱們將
ADwAcwBjAHIAaQBwAHQAPgBhAGwAZQByAHQAKAAiAGsAZQB5ADoALwAlAG4AcwBmAG8AYwB1AHMAWABTAFMAdABlAHMAdAAlAC8AIgApADwALwBzAGMAcgBpAHAAdAA
進行Base64 解密,獲得一個含有不可見字符的字符串,將不可見字符去掉,獲得
<script>alert("key:/%nsfocusXSStest%/")</script>
將key 的值填入頁面的輸入框獲得flag
文件備份泄露,常見的備份格式懟就是了,嘗試得出index.php.txt
,訪問獲得源碼
1 |
|
代碼審計一波,能夠發現存在變量覆蓋問題。
重點在於對輸入值的處理,都有$$k,可是對$v 的處理不一樣
_200=flag
,使得$_200 獲得flag 的值,POST 傳值隨便傳flag=123456
,最後知足if 語句,輸出\$_200 就是輸出flag一開始覺得是注入,結果毫無反應,後來發現還有個參數f=article,將其改爲頁面裏出現過的contents,毫無反應+1
……
猜想f 應該是filename,指定包好的內容,那麼有沒有可能存在文件包含的漏洞呢?利用僞協議嘗試讀取源碼
php://filter/read=convert.base64-encode/resource=index
報錯error……聯想題目提示過濾不嚴謹,說明應該是過濾什麼東西,既然是僞協議,那麼最早過濾的應該就是php,嘗試大寫,成功了。。。。。。幸福來得太快就像龍捲風
必須由本地訪問,則修改包頭,一開始覺得是XFF,用X-Forwarded-For Header 添加了127.0.0.1,結果不對,那就把全部判斷ip 的頭都嘗試一遍
1 |
X-Forwarded-For: 127.0.0.1 |
嘗試Client-IP 的時候正確了
是否是和我同樣打開cmd 去ping 了一下網站ip,發現p用沒有,而後一籌莫展?
腦洞,只有這一句話,我沒這麼大的腦洞,直接問的學弟
當你能猜出能夠GET傳參一個參數ip過去的時候,你的腦洞已經突破天際
邁出第一步後就簡單無比,命令執行而已,過濾了|
,那就用%0a
Payload:
1 |
index.php?ip=118.190.152.202%0als |
比賽還沒結束,運維忽然修改了flag.txt 所在目錄,新的目錄爲/home/flag.txt
GET傳參username和password,獲得回顯,註釋提示index.php.txt(話說前面那個源碼泄露沒作出來的,看到這個題應該都能回去作了),訪問獲得源碼
1 |
|
審計一下,條件很少
繞事後面兩個條件慢慢下手,能夠看到比較username 和$flag 是經過strcasecmp 來比較的,它和strcmp 的區別在於區分大小寫,那麼存不存在漏洞呢?固然是存在的,這種比較函數老是會存在數組的漏洞(滑稽:PHP 天下第一),和strcmp 的漏洞同樣,構造數組便可
username[]=1
那麼password 呢?這裏不能像第一題同樣改長度,可是咱們還有科學記數法!1000 的科學記數法怎麼表示?
password=1e3
我的信息欄,有GET 傳參,應該是注入點了
發現頁面編碼是gb2312,多是寬字節注入,檢驗一下id=1%df'--+
,返回正常頁面,肯定是寬字節注入
接下來就是常規的SQL 語句了
1 |
id=1%df' or 1=1 order by 8--+ |
直接看代碼,MD5常見漏洞:將全部0e 開頭的MD5值都看成0,隨便輸一個知足條件的值,跳轉到下一個頁面,又是代碼,變量覆蓋$$a
,傳入a=flag,就能夠獲得flag值
一個吾王的照片,就沒了,查看網絡,發如今調用index.php 時還調用了show.php?img=1.jpg
因而訪問show.php,默認傳參是1.jpg,那麼能不能傳入其餘值?嘗試後發現
1 |
img=*.jpg,返回圖片出錯沒法顯示 |
index.php 明顯是和show.php 在同一目錄,這都找不到,能夠看出是後臺作了處理,多是過濾了關鍵字php,使用大寫,php5等嘗試都失敗了
既然文件包含包含本地文件失敗,那麼嘗試能不能讀源碼,又用到了僞協議
img=php://filter/read=convert.base64-encode/resource=show.php
仍是File not find
和大佬py一波,被告知是傳入參數必需要有jpg,那麼改payload爲img=php://filter/read=convert.base64-encode/resource=show.php|jpg
成功返回頁面源碼
1 |
|
對源碼進行分析,關鍵的幾個點在
最後的flag 在上一級目錄的flag.php裏,最後的payload
img=php://filter/read=convert.base64-encode/resource=../flag.php|jpg
貼一下大佬的payload:
curl http://118.190.152.202:8006/show.php?img=./jpg/../show.php
curl http://118.190.152.202:8006/show.php?img=./jpg/../../flag.php
第一關,注入點在username,直接sqlmap跑
1 |
python sqlmap.py -r "POST\Iscc.txt" -p username --dbs --batch --level 5 |
sqlmap梭哈以後獲得admin 的password,拿去md5解密,登陸,進入第二個注入
第二個注入就很簡單了,flag 在news表,別查錯了就行
1 |
id=1 or 1=1 order by 6 |
源碼
1 |
|
分析一下源碼,能夠知道以下信息
有經驗的選手一看就知道是hash長度擴展攻擊,咱們知道一個長度已知,數值未知的值\$key,同時知道$key鏈接上一個已知的值(guest)的md5 值(78cfc57d983b4a17e55828c001a3e781),須要知足\$key 加上另外一個可控的值(\$username) 的MD5 等於一個已知的值。
hash長度擴展攻擊能夠直接用工具hashpump,安裝和使用能夠看pcat 師傅的文章
咱們直接上手
1 |
$key 是密文,長度46,後面加上guest,簽名是78cfc57d983b4a17e55828c001a3e781 |
使用hashpump 加上數據admin
1 |
|
獲得
1 |
5f585093a7fe86971766c3d25c43d0eb |
第一個是新的簽名,把它賦給verify,第二是post 的值,把\x 改爲%,提交便可獲得flag
右鍵F12得提示index.txt,訪問獲得源碼
1 |
|
和實驗吧的第一題差很少,cbc字節反轉攻擊,你們也能夠去看pcat師傅的wp,原理也很少BB,我前面有一篇博客也講了這個東西
若是咱們提交的是username=Admin&&password=mntn
那麼序列話並分組後就是
1 |
a:2:{s:8:"userna |
可見,咱們要改的A 在第二塊,偏移量爲9,那麼腳本(直接用的pcat師傅的)以下
1 |
# -*- coding:utf8 -*- |
提交獲得base64_decode('"FIo6FPqKsWAno/eQZlkURW1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjQ6Im1udG4iO30="') can't unserialize
用腳本獲取新的iv
1 |
# -*- coding:utf8 -*- |
獲得新的iv,和新的cipher 一塊兒提交便可獲得flag
雜項賊菜,沒幾個會作的
明顯是修改圖片高度,若是你問爲何?你能夠用工具tweakpng去校驗圖片的CRC校驗碼,發現會報錯,說明當前圖片的高度是不符合如今的校驗碼的,將圖片高度修改到1000,獲得flag
很簡單的flag。
只給了一串數字,首先想到的是進制轉換,2個一組轉成10進制對應的ascci瑪,結果不對,轉成16進制就對了
培根密碼,自行百度
Base64解密屢次,到最後會出錯,將最後一次正常的解密拿去aes解密,獲得一串繁體字,查閱資料得知是土豆文,一種詭異的對應密文。
直接拋到解密網站去解密與佛論禪
一個logo圖,扔到winhex一看,發如今最後有東西,另存爲txt,打開
1 |
\u0066\u006c\u0061\u0067\u007b\u0069\u0073\u0063\u0063\u0020\u0069\u0073\u0020\u0066\u0075\u006e\u007d |
拿去轉成ASCII碼,再轉字符便可,最後flag格式只要括號裏的
不會,學弟作的
本題和實驗吧的有一題相似,須要用到工具
winhex 打開能夠看到有Adobe Fireworks
字樣,應該就是使用這個軟件處理過。
使用Adobe Fireworks 打開後,果真有驚喜,一個在圖層下面的二維碼,發現掃不了,應該是處理過的,將其分割,8取4拼一下(這個讓我想起以前作的一個ctf,也是拼,結果怎麼拼都掃不起。。。)
凱撒密碼,而且偏移是13,給個凱撒密碼的通用腳本
1 |
#-*- coding: utf8 -*- |
獲得roqtp697t95j3
,一看就不是flag,結合提示鍵盤
,因此多是鍵盤密碼: 即密文在鍵盤上的下一行所對應的字符是相應明文,好比r=>f
,低頭看鍵盤得flag
zip僞加密,zip文件由三個部分組成:壓縮源文件數據取+壓縮源文件目錄區+壓縮源文件目錄結束標誌;
簡單來講,數據區就是被壓縮文件的數據,目錄區中的每一條記錄對應數據區中的一條數據,結束標誌重要。要準確瞭解zip各部分的準肯定義能夠看這裏:http://blog.csdn.net/ETF6996/article/details/51946250判斷有沒有加密能夠看文件後綴有沒有一個*號,zip僞加密主要是在目錄區中的 全局方式位標記的值爲奇數(根據這個標記位來判斷有無加密更改爲09 00 就會提示有密碼)
實例操做:找到一個未加密文件,winhex打開,找到目錄區開頭504b1020,而後修改全局方式位標記爲09 00,保存,再用WinRAR打開,發現有一個後綴的*號,須要密碼。
在本題中,修改14 00 07 09
爲14 00 08 09
便可
打開flag.txt 獲得一串字符,提交錯誤,說明有加密,最後發現是rot13,解密便是正確的flag