隔了兩天繼續來搞簡單web,
題目 get_post
題目描述:X老師告訴小寧同學HTTP通常使用兩種請求方法,你知道是哪兩種嗎?
思路:

打開網頁,用GET方式傳引數,
那就按照要求來 加上url /?a=1
(/?a=x, a就是一個要傳的值,值為x)

額,有彈出一句話,要post傳參,
post傳參不能直接體現在url上了,
這里推薦一個chrome插件,HackBar能post傳參,

點擊運行試試

OK,得到flag,
題目:xff_referer
題目描述:X老師告訴小寧其實xff和referer是可以偽造的,
思路:

看題目,可以偽造頭檔案,
那用啥改呢?
看網上大佬都是用的burp,試試,
(這個軟體使用教程因為篇幅就省略了)

點擊發送資料包,看看回傳啥,

多了一句 必須來自谷歌,那繼續改唄,

再試試
ok,flag到手,
題目:webshell
題目描述:小寧百度了php一句話,覺著很有意思,并且把它放在index.php里,
思路:

啥叫webshell,百度一下,哦哦這玩意是個后門,
啥意思呢,<?php ?> 就是PHP代碼格式不用管,
其實本質上就兩句話,一句是post就是傳一個叫shell的引數,
而前面@eval就是把傳入的shell當做代碼執行,知道后門其實就可以隨意執行想執行的代碼了,
這里推薦一個工具:中國菜刀,知道木馬可以快速獲得檔案目錄,

連接成功,密碼填后門post傳參的名字,這里就是網頁給的shell啦,雙擊

看到個flag.txt的檔案,點進去flag到手,
題目:command_execution
題目描述:小寧寫了個ping功能,但沒有寫waf,X老師告訴她這是非常危險的,你知道為什么嗎,
思路:
一個ping框,輸入本地地址127.0.0.1試試

發現其實就是ping了三次,
試試能不能注入,輸入1;ls

發現能執行ls,
那試試查找有沒有flag檔案
輸入1;find / -name "flag*"
查詢flag* 就是以flag開頭的檔案

OK,看到一個,直接cat
輸入 1;cat /home/flag.txt

提交即可
題目:simple_js
題目描述:小寧發現了一個網頁,但卻一直輸不對密碼,(Flag格式為 Cyberpeace{xxxxxxxxx} )
思路:

上來就叫你輸入密碼,
隨便輸入一個1試試,

提示 人造密碼哈哈,,,
什么玩意,看題目描述,F12查看前端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;
先傳入一個字串pass_enc,
然后以pass_enc “,” 為分隔存到陣列tab里,
定義一個pass字串有一堆數字,
然后pass以 “,” 為分隔存到陣列tab2里,
注意這兩個陣列都是字串陣列,
接下來是一大堆變數,
j=tab.length,那就是不定了,
i,k,l,l=0;m,n,o,p="";
k=j+(l)+(n=0);那就是k=j;n=0;
n=tab2.length;那n=18;
接下來看邏輯部分:
for(i = (o=0); i < (k = j = n); i++ )
{o = tab[i-l];p += String.fromCharCode((o = tab2[i])
if(i == 5)break;});
回圈從i=0開始;i<n結束;(6次,i==5 就break了)
每一次執行:o=tab[i-1],這句話其實沒用,看后面,o = tab2[i],o被tab2[i]覆寫了,
然后p加上o轉為符號的值(String.fromCharCode是ascii轉符號)
那其實就是將p=tab2的符號形式;實際就是p=FAUX P(完整應該是 FAUX PASSWORD HAHA),
繼續往下看:
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]));
}
回圈從i=0開始;i<n結束;(18次)
每一次執行:和上面一樣,前面o=tab[i-1]這句話沒用,
如果i>5或者i<k-1,p+=tab2[i];
那最終P=FAUX PASSWORD HAH ,
繼續往下看
p += String.fromCharCode(tab2[17]);
pass = p;return pass;
p再加上tab2[17]對應的符號(A),那P就是FAUX PASSWORD HAHA,
pass=p="FAUX PASSWORD HAHA",回傳pass;
OK,函式到此結束,
???
我們傳入的值pass_enc呢?
這個函式不管傳入啥都是這玩意啊,
那輸入密碼根本不可能成功,
繼續再往下看
給了一個字串陣列
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"));
會不會是這個陣列代替上面的tab2,按照上面流程就能算出答案呢?
轉格式
String["fromCharCode"]={55,56,54,79,115,69,114,116,107,49,50}
按照上面運算可知,pass=786OsErtk12.
看題目描述化成格式:Cyberpeace{786OsErtk12},
輸入,OK,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/206086.html
標籤:其他
上一篇:面部識別:攻擊型別和反欺騙技術
下一篇:python學習二環境安裝
