SQL注入 1-3_基于post报错注入
**
SQL注入 1-3_基于post報錯注入
**
一.概念
客戶端提交參數(shù)基于post
1.基于post注入不會拼接到url
2.相對get提交參數(shù)更加安全
3.但是依然可以使用代理(中間人)截斷判斷是否存在sql注入
二.基于post報錯的實列
1.打開登陸頁面
按照常規(guī)的符號手段,觀察以下三張圖,并沒有報錯
當然也可以使用 id=1 and 1=2 和 id=1’ and ‘1’ = 1’一樣沒有反應(yīng)
由此判斷我們應(yīng)該使用代理,因為他是基于post,無法拼接到url
打開代理截斷,和burpsuite
提交任意登陸參數(shù)
可以看到我們發(fā)送的所有的信息
點擊action 然后發(fā)生到repeater
repeater的作用:可以修改發(fā)送的參數(shù),達到注入目的
可以看到已經(jīng)發(fā)送過去了
我們使用反斜杠測試
向右看,可以看到服務(wù)器報錯
則我們可以推測他應(yīng)該是基于報錯 的post注入
我們可以大致的推測出sql語句
在存在注入的的位置,使用萬能密碼
如果沒有嚴格過濾提交的參數(shù)
則可以繞過登陸
可以看到我們已經(jīng)登錄了后臺
并且爆出了用戶的密碼和賬戶
我們再來看看源碼
確實和我們的猜測一樣,沒有過濾機制
并且是 使用 ‘’ 包含參數(shù)
好,我們接著看下一個,直接看看源碼
可以看到,程序員是使用了雙引號和括號包含了參數(shù)
同樣的方法代理截斷,并且輸入反斜杠,讓他報錯,當然也可以使用其他,符號手段
往右邊可以看到,又報錯了
我們又大致猜出了他的sql語句
在-- 空格 前面輸入萬能密碼,同樣成功登陸并且獲得密碼
當然在前面也可以輸入其他sql語句
和get手工注入一樣的
三.使用sqlmap探測
首先登陸,
然后代理截斷
將截斷的內(nèi)容復(fù)制保存到root/下,保存名為passwd.tet
-r 使用剛剛截斷的文件
-p 指定注入位置
并且指定探測技術(shù)
和指定當前使用的數(shù)據(jù)庫
可以看到成功的到當前數(shù)據(jù)庫名,
當然也可以其他詳細的注入
總結(jié)
1.當發(fā)現(xiàn)是post提交參數(shù)時,使用代理截斷手段
2.判斷大致sql語句,分析出sql語句,并且知道是字符型注入還是整型
3.接下來使用萬能密碼,也可以拼接sql語句,和get的報錯一樣的寫法
4.如果判斷出類型,可以直接使用sqlmap探測,不用那么麻煩
5.能夠注入的關(guān)鍵原因還是,參數(shù)過濾不完善,程序員應(yīng)該使用多重過濾 比如,先正則,在使用多個過濾函數(shù)
總結(jié)
以上是生活随笔為你收集整理的SQL注入 1-3_基于post报错注入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql_1-2_get基于盲注
- 下一篇: linux cmake编译源码,linu