前言
分析某金屬交易平台後台管理軟體,利用sql注入達到提權目的(演示敏感內容將會打碼處理)。
工具
1..net framework
2. exeinfope
3..net reflector
漏洞分析
首先我們登入軟體檢視軟體有哪些功能(這裡我有乙個許可權不足的帳號)。
登入成功後我們會看到如下選單內容,隨便點開幾個介面看看,檢視有資料並且操作正常。
我們使用exeinfo工具檢視launcher是什麼語言開發的,是否帶殼
看到這個資訊我們發現是.net開發的程式,我們可以使用net reflector 來檢視程式原始碼。
program是.net程式的入口點,我們可以從program下手檢視main裡面呼叫哪些內容
發現這裡有乙個主介面函式mainform,通過分析**找到合適的斷點,可以多下幾個斷點。比如:「messagebox.show」、"textbox.text"、"datagridview.datasouce"、「enable」。多嘗試一些然後根據堆疊回溯,找到你需要程式邏輯的位置。
我們隨便挑選乙個功能檢視,看看裡面**。發現裡面有sql語句,通過這個語句我們發現這個程式有sql注入漏洞。通過修改如何sql可以查詢更多資料,比如將時間條件移除這樣可以查詢出更多資料。
通過sql語句中使用ifnull函式這裡猜測使用mysql資料庫。那麼我們就採用mysql指令碼攻擊。
1.查詢庫中所有表
select * from sysobjects where xtype='u';2.查詢表中所有列--xtype='u':表示所有使用者表,
--xtype='s':表示所有系統表。
select name from syscolumns where id=object_id('表名');3.查詢表中所有列名和字段型別
select sc.name,st.name from syscolumns sc,systypes st where sc.xtype=st.xtype and sc.id in(select id from sysobjects where xtype='u' and name='table_name');攻擊步驟:
1.找到select和insert、update、delete地方個一處,方便後面提權操作
2.執行sql查詢語句查詢庫中有哪些表結構
3.找到類似管理員或者,使用者資料表結構
4.檢視使用者或者管理員表資料,找到自己id對應的資料行
5.通過執行sql語句進行修改對應的資料達到篡改資料的結果
漏洞總結
通過靜態程式,找到程式中使用sql語句的地方,靜態修改後動態執行,從而執行我們想要修改的資料,這個修改過程需要多次嘗試。通過伺服器返回的對應的錯誤資訊進行反覆修改嘗試,最終達到攻擊目的。
excel表中 A 1和A 1和 A1都有什麼不同
通俗一點解釋 countif a 1 a1,a1 指在a 1 a1中查詢與a1的資料相同的所在單元格的個數,當公式下拉時,就變成了countif a 1 a2,a2 countif a 1 a3,a3 但是 countif a 1 a1,a1 1這個公式只是乙個條件,不能單獨成立。當它找出所在區域中...
c語言那些細節之a 1和 a 1的區別
首先a是乙個陣列名,當看到這個a與 a時,一般我們的理解都是這個陣列的首位址。沒錯,如果加上列印的話,確實兩個值是一樣的。不過 a是整個陣列的首位址,a則是陣列首元素的位址,雖然值一樣,但是意義卻不相同。在此之前有必要先看下c程式在記憶體中的分布圖。下面來看乙個例子吧還是。示例 html view ...
linux shell 基礎語法A 1
從echo開始 echo可以看做print printf之類的東西。幾乎所有的shell指令碼都離不開echo。echo有如下幾個作用 1 輸出指令碼執行流程的提示資訊 2 互動式指令碼列印提示資訊 3 構建格式化的日誌 4 除錯指令碼時,可以用來列印出一些中間變數的值 當然也可以用bash x除錯...