DIVA Android - 1.Insecure Logging
DIVA Android - 2.Hardcoding Issues – Part 1
DIVA Android - 3.Insecure Data Storage – Part 1
DIVA Android - 4.Insecure Data Storage – Part 2
DIVA Android - 5.Insecure Data Storage – Part 3
DIVA Android - 6.Insecure Data Storage – Part 4
DIVA Android - 7.Input Validation Issues – Part 1
DIVA Android - 8.Input Validation Issues – Part 2
DIVA Android - 9.Access Control Issues – Part 1
DIVA Android - 10.Access Control Issues – Part 2
DIVA Android - 11.Access Control Issues – Part 3
DIVA Android - 12.Hardcoding Issues – Part 2
DIVA Android - 13.Input Validation Issues – Part 3
「7.Input Validation Issues – Part 1」對應到的 Activity 是 SQLInjectionActivity,看一下 code 長這樣:DIVA Android - 7.Input Validation Issues – Part 1
DIVA Android - 8.Input Validation Issues – Part 2
DIVA Android - 9.Access Control Issues – Part 1
DIVA Android - 10.Access Control Issues – Part 2
DIVA Android - 11.Access Control Issues – Part 3
DIVA Android - 12.Hardcoding Issues – Part 2
DIVA Android - 13.Input Validation Issues – Part 3



首先新建「sqli」DB,再建立「sqliuser」Table、「user」、「password」、「credit_card」欄位,並新增 3 筆資料。
看到拼接又沒過濾特殊字串,基本就可以判斷存在 SQL Injection了。
先來撇一下:

再來看 log 的輸出:

可以上了。

弱點在於前面提到的使用字串拼接,且也未過濾單引號雙引號等特殊字串。
防範方法:
(1)使用SQLite API
(2)若要使用一般 SQL 語法,就不要拼接字串,同時應過濾特殊字串
沒有留言:
張貼留言