2016年8月30日 星期二

DIVA Android - 13.Input Validation Issues – Part 3

相關文章:

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

「13.Input Validation Issues – Part 3」對應到的 Activity 是 InputValidation3Activity,看一下 code 長這樣:



一樣追 DivaJni:



JNI 機制上一篇有稍微提到就不多說了,這次追 native 變數 initiateLaunchSequence。

接著看 divajni.c:



弱點在於 strcpy 不會做字串長度的檢查,而前面的變數 CODESIZEMAX 值為 20,一但使用者輸入值超過 20,便可能造成 buffer overflow。

防範方法:

(1)限制使用者輸入的字串長度。

(2)使用安全的函數,參考 停止使用 strncpy 函数!

1 則留言: