mysql5.7配置用户名密码_Druid拦截功能的配置与简单绕过
1
配置應用開啟druid WAF
web.xml 配置servlet,以便于監控
DruidStatViewcom.alibaba.druid.support.http.StatViewServlet????loginUsername??druid????????loginPassword??druid????DruidStatView/druid/*
spring配置開啟Filter
//Filter別名配置在文件Druid-xxx.jar/META-INF/druid-filter.properties中? ? ? ? ? init-method="init" destroy-method="close">? //加上這一行配置,Filter才會生效
mybatis配置SQL注入語句
? ? ? ? SELECT id, username, password
? ? ? ? FROM users where username = "${username}"
2
注入測試
當用戶名存在時返回 true
當用戶名不存在時返回 false
閉合SQL語句,被Filter攔截
druid后臺查看攔截原因
使用current_user繞過
條件不成立返回false,成立返回異常
如上圖所示,因為等式成立,所以返回多個結果 ,但因為mybatis當前語句只能返回一個結果集,所以拋出異常nested exception is org.apache.ibatis.exceptions.TooManyResultsException
substr()與ascii()盲注
最終發現,并不能在druid開啟攔截的情況下通過注入獲取任意數據。不過在登陸框存在注入時,仍然可以使用萬能密碼進行登陸。
萬能密碼
用戶名任意填寫
密碼處:" or password like "%%
3
Druid連接WallFilter攔截
默認配置下,druid攔截的關鍵字與函數
function:
? ? version
? ? load_file
? ? database
? ? schema
? ? user
? ? system_user
? ? session_user
? ? benchmark
? ? current_user
? ? sleep
? ? xmltype
? ? receive_message
schema:
? ? information_schema
? ? mysql
? ? performance_schema? ??
variant:
? ? basedir
? ? version_compile_os
? ? version
? ? datadir
4
最后
該問題已經官方github項目提交issue
https://github.com/alibaba/druid/issues/3145
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的mysql5.7配置用户名密码_Druid拦截功能的配置与简单绕过的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 问下推上卖片的都是骗子吗?
- 下一篇: 商品品牌信息的增删改查操作步骤_java