- 台大電機所,網路攻防實習課程ㄉ作業
- 作業內容需要設計一款留言板。留言板內部需要有註冊、登入功能,並可供使用者上傳圖片。
- 作業繳交後會將Server開放給班上其他同學進行各種網路的攻擊。
- 身為一個駭客(X 玩資安的人,當然要在網站上面埋很多好玩的東西,讓想來玩我網站的人好好的被我玩囉XDDDDD
- 網站連結(我也不知道啥時會撤掉):http://meow.meow-meow.tk
這些好玩ㄉ功能都讓各種來攻擊ㄉ同學玩ㄌ很久XDD
- 我ㄉ網頁副檔名都使用.php
- Header 裡面標注的也是PHP + Apache
- 身為一個攻擊者,會根據不同的網頁伺服器採取不同的攻擊手段。但是事實上我採用的是Python的Flask,而不是PHP。透過這種手段來誤導駭客,做出一些浪費時間ㄉ事XDDD
class localFlask(Flask):
def process_response(self, response):
response.headers['server'] = 'Apache/2.4.38'
response.headers['x-powered-by'] = 'PHP/5.5.13'
super(localFlask, self).process_response(response)
return(response)
application = localFlask(__name__)
- 我ㄉ網站透過ORM來防SQL injection。但是單純的防禦也太無聊了吧?!所以我在註冊跟登入的地方塞了一些好玩ㄉ東西。
- 攻擊者如果在登入視窗輸入SQLi最常見的單引號,會回傳MySQL的Error
- 但這個功能事實上的實現方式是...
if '\'' in name:
rt = '1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'{}\' at line 1.'.format(name)
return render_template_string('{{meow}}',meow=rt)
- 依照Log看起來,非常多人在這邊玩ㄌ很久XDDD
- 在首頁的原始碼中,我有放了三個彩蛋網頁的註解
<!-- <br><a href="./phpmyadmin.php">phpmyadmin</a>
<br><a href="./phpinfo.php">phpinfo</a>
<br><a href="./admin">admin_page</a> -->
無論是對付掃路徑,或是用各種方法放入非預期結果想讓伺服器壞掉的話。我ㄉ網站都不會回應常見的Error Code如400、403、404、500。
- 圖片上傳奇怪ㄉ檔案:用Pillow強制讀進來改尺寸
- Pillow讀到壞掉就壞掉ㄌ
- XSS
- 用render_template內建ㄉ防禦
- CSRF
- 增加CSRF Token
- SSTI
- 小心ㄉ使用render_template_string