最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡(jiǎn)單聊聊SQL注入的原理以及一般步驟

 更新時(shí)間:2022年02月21日 09:16:02   作者:iamblackcat  
所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁(yè)面請(qǐng)求的查詢字符串,欺騙服務(wù)器執(zhí)行惡意的SQL命令,下面這篇文章主要給大家介紹了關(guān)于SQL注入的原理以及一般步驟的相關(guān)資料,需要的朋友可以參考下

原理

SQL注入是一種攻擊方式,在這種攻擊方式中,惡意代碼被插入到字符串中,然后該字符串傳遞到SQL Server的實(shí)例以進(jìn)行分析和執(zhí)行。任何構(gòu)成SQL語(yǔ)句的過(guò)程都應(yīng)進(jìn)行注入檢查,因?yàn)镾QL Server將執(zhí)行其接收到的所有語(yǔ)法有效的查詢。

(摘自微軟 SQL注入,但要注意的是,SQL注入并不限于SQL Server,幾乎任何數(shù)據(jù)庫(kù)引擎都存在這個(gè)問(wèn)題)

一般利用步驟

1.判斷注入點(diǎn)

判斷注入點(diǎn)有方面的含義,一是找到可能存在注入的位置,二十判斷該處能否進(jìn)行注入。在靶場(chǎng)環(huán)境下,我們已經(jīng)知道,GET的參數(shù)id是與數(shù)據(jù)庫(kù)進(jìn)行交互的點(diǎn),接下來(lái)判斷能夠進(jìn)行注入。

id為1,成功查詢,回顯正常

id為1',數(shù)據(jù)庫(kù)報(bào)錯(cuò),由報(bào)錯(cuò)信息猜測(cè)閉合方式為單引號(hào)

id為1' --+,成功查詢,回顯正常,印證猜測(cè),

id分別為1' and 1=1 --+和1' and 1=2--+,通過(guò)回顯情況,進(jìn)一步判斷能否注入

1=1為永真,當(dāng)1成功查詢,若1=1也成功查詢,則頁(yè)面返回正常,1=2為永假,因此若1=2得到執(zhí)行,則頁(yè)面必返回不正常。通過(guò)對(duì)比二者返回結(jié)果,可知改點(diǎn)能否進(jìn)行注入。

2.判斷查詢字段數(shù)

為了將我們想要的結(jié)果能夠顯示在頁(yè)面上,我們需要用到聯(lián)合查詢,聯(lián)合查詢的條件之一是必須保證前后查詢語(yǔ)句的字段數(shù)相等,因此,我們需要判斷查詢的字段數(shù)。

一般采用order by或union select如下:

order by 大于3的數(shù)時(shí)頁(yè)面返回不正常,小于等于3時(shí)返回正常,得知原查詢語(yǔ)句的字段數(shù)為3?;?/p>

當(dāng)我們聯(lián)合查詢4列時(shí),得到了查詢語(yǔ)句由不同的列的錯(cuò)誤,查詢3列時(shí):

成功查詢,得原查詢語(yǔ)句只有三列。

3.查數(shù)據(jù)庫(kù)名、版本號(hào)、用戶名等信息

union聯(lián)合查詢的規(guī)則是當(dāng)前一個(gè)查詢失敗時(shí)執(zhí)行第二個(gè)查詢,前面我們知道了查詢有三個(gè)字段,接下來(lái)將傳入id為0,判斷是三個(gè)字段的回顯位置。

再由數(shù)據(jù)庫(kù)內(nèi)置的version()database()、user()查詢出版本號(hào)、數(shù)據(jù)庫(kù)當(dāng)前名和當(dāng)前用戶。

4.查詢表名

前面我們查詢得知,當(dāng)前數(shù)據(jù)庫(kù)版本為5.5.53,在MySQL5.5后版本都內(nèi)置了數(shù)據(jù)庫(kù)information_schema。它存儲(chǔ)了數(shù)據(jù)庫(kù)中所有的表名、字段名等信息。從而可以構(gòu)造查詢語(yǔ)句,獲取表名。

payload:?id=0' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3--+

這里的group_concat()為SQL語(yǔ)句內(nèi)置的聚合函數(shù),用來(lái)將查詢的結(jié)果作為一個(gè)字符串輸出。

(使用payload:?id=0' union select 1,(select group_concat(schema_name) from information_schema.schemata),3 --+

5.查詢字段名

知道了所有的表名,接下來(lái)選擇一個(gè)表,查詢其中所有的字段名。

payload:?id=0' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),3--+

6.查詢記錄內(nèi)容

有了表名和字段名,便可以爆出數(shù)據(jù)庫(kù)中的記錄了。

payload:?id=0' union select 1,group_concat(username),group_concat(password) from users --+

以上是一般SQL注入的流程,當(dāng)然還有一些像報(bào)錯(cuò)注入,請(qǐng)求頭注入、select into outfile 寫入一句話木馬等姿勢(shì)未介紹。后續(xù)學(xué)習(xí)過(guò)程中再逐漸補(bǔ)充。

總結(jié)

到此這篇關(guān)于SQL注入的原理以及一般步驟的文章就介紹到這了,更多相關(guān)SQL注入的原理及步驟內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Navicat運(yùn)行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧〉慕鉀Q方案

    Navicat運(yùn)行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧〉慕鉀Q方案

    最近導(dǎo)出數(shù)據(jù)庫(kù)到另一個(gè)服務(wù)器,遇到這個(gè)問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Navicat運(yùn)行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧〉慕鉀Q方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 交互分布式系統(tǒng)下如何生成唯一序列

    交互分布式系統(tǒng)下如何生成唯一序列

    在分布式系統(tǒng)中,由于涉及到多個(gè)不同業(yè)務(wù)module的交互,以及高并發(fā)的場(chǎng)景。我們需要系統(tǒng)能夠生成一個(gè)跨業(yè)務(wù)module的全網(wǎng)唯一序列號(hào),來(lái)保證我們業(yè)務(wù)操作的獨(dú)立性和唯一性
    2022-01-01
  • 數(shù)據(jù)庫(kù)查詢性能需注意幾點(diǎn)經(jīng)驗(yàn)

    數(shù)據(jù)庫(kù)查詢性能需注意幾點(diǎn)經(jīng)驗(yàn)

    這篇文章主要介紹在程序編程中,需要注意數(shù)據(jù)庫(kù)的性能問(wèn)題,否則會(huì)導(dǎo)致數(shù)據(jù)庫(kù)與頁(yè)面打開(kāi)都很慢
    2013-05-05
  • Hive?HQL支持2種查詢語(yǔ)句風(fēng)格

    Hive?HQL支持2種查詢語(yǔ)句風(fēng)格

    這篇文章主要為大家介紹了Hive?HQL支持2種查詢語(yǔ)句風(fēng)格示例語(yǔ)法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 如何取得一個(gè)表的所有字段名用逗號(hào)分割

    如何取得一個(gè)表的所有字段名用逗號(hào)分割

    如何取得一個(gè)表的所有字段名用逗號(hào)分割...
    2006-12-12
  • DophinScheduler定期刪除日志實(shí)例代碼

    DophinScheduler定期刪除日志實(shí)例代碼

    Apache DophinScheduler 運(yùn)行一段時(shí)間后,實(shí)例調(diào)度日志越來(lái)越多,需要定期清理,這篇文章主要介紹了DophinScheduler定期刪除日志實(shí)例代碼,需要的朋友可以參考下
    2014-04-04
  • SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡(jiǎn)單實(shí)現(xiàn)

    SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于SQL行轉(zhuǎn)列、列轉(zhuǎn)行的簡(jiǎn)單實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 多條件查詢的程序

    多條件查詢的程序

    在一個(gè)網(wǎng)站中,常常會(huì)使用到查詢功能。假設(shè)一個(gè)企業(yè)內(nèi)部網(wǎng)中,用戶信息里通常會(huì)涉及到工號(hào)、姓名、性別、學(xué)歷、職業(yè)、職稱、身份證號(hào)碼、手機(jī)號(hào)碼、座機(jī)號(hào)碼、傳真號(hào)碼、郵政編號(hào)、通訊地址等信息。
    2009-05-05
  • 利用帶關(guān)聯(lián)子查詢Update語(yǔ)句更新數(shù)據(jù)的方法

    利用帶關(guān)聯(lián)子查詢Update語(yǔ)句更新數(shù)據(jù)的方法

    這篇文章主要介紹了利用帶關(guān)聯(lián)子查詢Update語(yǔ)句更新數(shù)據(jù)的方法,需要的朋友可以參考下
    2014-08-08
  • Navicat使用快速入門教程

    Navicat使用快速入門教程

    這篇文章主要介紹了Navicat使用快速入門教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評(píng)論

SHOW| 大悟县| 德安县| 房产| 会泽县| 瓦房店市| 博客| 泉州市| 阿城市| 普安县| 上蔡县| 敖汉旗| 涟源市| 于都县| 上思县| 克东县| 芦溪县| 应城市| 泸水县| 贡山| 台中县| 峡江县| 九江县| 栖霞市| 绥宁县| 吉安市| 定远县| 通榆县| 沁阳市| 林周县| 德化县| 崇文区| 安西县| 武山县| 穆棱市| 青海省| 肥乡县| 新化县| 富裕县| 庆阳市| 海林市|