2017.W32 - 了解你在寫的程式 - 資安

Odelette avatar
By Odelette
at 2017-08-08T23:43

Table of Contents

2017.W32 - 了解你寫的程式
> 你不了解程式語言 直到己設計一個

## 前言 ##

#include <stdio.h>

int foo(void) {
fprintf(stdout, "Run foo\n"1m);
return 1;
}

int main(int argc, char *argv[]) {
fprintf(stdout, "%d\n", 1 < foo() > 2*foo() <= 3000);
return 0;
}

假設不管編譯器產生的任何警告 (Warning)

1- 請問上面的程式碼 (C) 是否可以編譯成功?

2- 假如可以編譯成執行檔 他的執行結果會是?

3- 假如編譯失敗 他的錯誤 (Error) 是什麼



## 內容 ##

故事的起因是看到了這篇文章[0] 講了關於 JavaScrip 中的 == 與 === 之間的神奇關係

假如曾寫過 JavaScript 就知道這語言充滿著各種可能的型態轉換 (type coercion)[1]

像是 "2" == 2 這種 會把前面的 2 轉型成 int 在做比較

因此就會有這類型的整理圖表[2] 告訴你 JavaScript 哪些情況下 == 是會成立的

但如果仔細看整理的結果就會發現 部分結果無論是 == 還是 === 都一定不為 true

像是 [] == [] 跟 [] === [] 結果都會是 false 這違反直覺的結果

而更多神奇的運算 像是 NaN + Nan 與 !NaN + NaN 就可以交給有興趣的人研究了



很多程式的安全性漏洞都來自於對於程式、函式庫或指令的不理解

在直覺上的使用造成出乎意料的結果 導致出現安全性問題

像是在 Linux 環境中 即使檔案權限設定為 root:root 600 的權限

如果父目錄的權限設定為 777 則惡意的攻擊者依然可以對檔案做'修改'

更不用提 如果是要寫封包類型的 C 程式語言 有多少人記得 struct 需要額外的敘述





[0]: https://stackoverflow.com/questions/359494/which-equals-operator-vs-should-be-used-in-javascript-comparisons
[1]: https://stackoverflow.com/questions/19915688/what-exactly-is-type-coercion-in-javascript
[2]: http://dorey.github.io/JavaScript-Equality-Table/

--
Tags: 資安

All Comments

Frederic avatar
By Frederic
at 2017-08-11T20:36
OAOrz
Lydia avatar
By Lydia
at 2017-08-14T23:27
長知識
Isabella avatar
By Isabella
at 2017-08-18T09:55
我能對前言發伸手牌嗎?

使用兩台ds116 做一支cam監控&異地備分

Skylar Davis avatar
By Skylar Davis
at 2017-08-04T10:12
※ [本文轉錄自 Linux 看板 #1PWzUuCT ] 作者: puataylorwu (ptaylor) 看板: Linux 標題: [問題] 使用兩台ds116 做一支cam監控andamp;異地備分 時間: Fri Aug 4 10:11:01 2017 主要是想請教這樣配是不是可行 我有看 ...

Ptt SSH 的用途是甚麼?

Rosalind avatar
By Rosalind
at 2017-08-01T22:52
Hi,大家好。平時我上PPT都用 PuTTY telnet(TCP port 23),在 sysop 看板見到 有 SSH 服務開放但用平時登入的賬戶登入不了。 請問: 一、有否加密的方法瀏覽 PPT?密碼用 telnet傳送,感覺有點... 二、SSH 是否一般用家可以使用? 謝謝 - ...

2017.W31 - DEFCON

Damian avatar
By Damian
at 2017-08-01T21:42
2017.W31 - DEFCON andgt; 如果有機會要參加的 conference ## 前言 ## 美國國家戒備等級 (DEFCON)[1] 分為五個層級 其中最高的 DEFCON-1 代表最高的戰爭準備狀態 ## 內容 ## DEFCON 是目前全球規模最大的資訊安全會議之一 會議從 19 ...

2017.W30 - 實務上的密碼學應用

Xanthe avatar
By Xanthe
at 2017-07-25T20:43
2017.W30 - 實務上的密碼學應用 andgt; 有沒有一種方式 告訴妳方法但依然讓你不知道答案 ## 前言 ## 不知道有沒有人曾經好奇過 為什麼都告訴你密碼怎樣算了 (演算法) 但是還是沒有一個有效的破解密碼方式 ## 內容 ## 可以參考 2017.W19 - 橢圓曲線加密 ECC ...

防火牆可能限制UNC連線的來源IP嗎?

Kristin avatar
By Kristin
at 2017-07-22T16:31
小弟並非專業的資安人員,只是偶爾寫點小工具幫忙處理資料而已 所以之前病毒爆發出來時,只是將 135,137,138,139,445 等port直接檔掉 現在因為要開放別的機器透過UNC路徑讀寫本機的資料,希望作一些調整 請問有可能在「具有進階安全性的Windows防火牆」直接設定規則 限制僅允許特定來 ...