Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ITAC | Websec 2
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
racterub
October 20, 2020
Programming
0
210
ITAC | Websec 2
ITAC | Websec 2
racterub
October 20, 2020
Tweet
Share
More Decks by racterub
See All by racterub
IM620 Web Security
racterub
0
130
ITAC | Websec 3
racterub
0
250
ITAC | Websec 1
racterub
0
240
ITAC | Linux Basics
racterub
0
110
Introducing Reverse Engineering @ YZU CS250
racterub
0
230
ITAC | Jinja & Bootstrap
racterub
1
110
ITAC | Flask - Basic Flask
racterub
1
110
ITAC-Flask | Environment setup
racterub
1
80
Other Decks in Programming
See All in Programming
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
1.1k
Grafana:建立系統全知視角的捷徑
blueswen
0
330
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
100
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2k
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
690
Fragmented Architectures
denyspoltorak
0
150
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
Oxlintはいいぞ
yug1224
5
1.3k
Architectural Extensions
denyspoltorak
0
270
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
120
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
200
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
5.8k
Un-Boring Meetings
codingconduct
0
200
Between Models and Reality
mayunak
1
180
What does AI have to do with Human Rights?
axbom
PRO
0
2k
From π to Pie charts
rasagy
0
120
Darren the Foodie - Storyboard
khoart
PRO
2
2.3k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
97
How to Ace a Technical Interview
jacobian
281
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
110
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
72
Transcript
Web Security Racterub @ ITAC
•元智大學 電通英專大二 •常用 ID:Racterub / Racter •2017-2019 AIS3 學員 •2019
台灣好厲駭 學員 •2020 ⺠生物聯網漏洞挖掘競賽 第二期第三名 •2020 Zyxel 榮耀資戰 第三名 About Me
• 資訊洩露 • Basic PHP • XSS ፓ袅
資訊洩露
• 在現實生活中非常常見 • robots.txt • Git / SVN • HTML
虻懱丽襷
Robots.txt
• 搜尋引擎會依照網站上的 robots.txt 來決定有哪些網頁是 不能檢索的 • 有些時候可以找到一些奇怪的檔案或是目錄 Robots.txt
Robots.txt
Robots.txt
Git / SVN
Git / SVN
• 版本控制。 • 對每一次的檔案修改做紀錄。 • 具有回溯的功能。 • 可以將程式傳上網路,也可以從網路上複製一份 Git /
SVN
• 對於企業來說,可以更好控制程式的製作進度 • 對於網站來說,可以直接部署網站 Git / SVN
• 在線上部署的時候容易忘記砍掉 • 可以直接還原出專案 • 工具 • https://github.com/denny0223/scrabble • https://github.com/lijiejie/GitHack
• https://github.com/WangYihang/GitHacker (個人偏 好這個) Git / SVN
Git / SVN
HTML HyperText Markdown Language
• 資工的 Web 程式設計會學到 HTML
• 資工的 Web 程式設計會學到 • 有時候在 HTML 原始碼裡面會有一些意想不到的東⻄ HTML
• 資工的 Web 程式設計會學到 • 有時候在 HTML 原始碼裡面會有一些意想不到的東⻄ • 註解
• 被引用的 JavaScript HTML
• 掃 Port • nmap, massscan • 掃資料夾或是檔名 • dirsearch,
dirbuster • 掃子域名 • sublist3r ٌ犢
Lab Web2 Information leak
Basic PHP
• 主要是網頁開發的語言 • 有很多奇葩的特性 Basic PHP
• 變數 • 名字前面都會需要加一個 $ • HTTP GET / POST
• $_GET • $_POST • 其他我覺得跟 C / C++ 沒有太大差別 Basic PHP
• GET / POST data • ?a[]=1&a[]=2&a[]=3 Basic PHP
• GET / POST data • ?a[]=1&a[]=2&a[]=3 • a =
Array(1,2,3) Basic PHP
Lab Web2 Basic PHP
• ୧ࣳ獨 • '87' == 87 ? Basic PHP
• ୧ࣳ獨 • '87' == 87 ? • True •
'1e5' == 100e3 ? Basic PHP
• ୧ࣳ獨 • '87' == 87 ? • True •
'1e5' == 100e3 ? • True • NULL == 0 == False ? Basic PHP
• ୧ࣳ獨 • '87' == 87 ? • True •
'1e5' == 100e3 ? • True • NULL == 0 == False ? • True Basic PHP
• ୧ࣳ獨 • '123' + '456' ? Basic PHP
• ୧ࣳ獨 • '123' + '456' ? • '579' •
'123' . '456'牫 Basic PHP
• ୧ࣳ獨 • '123' + '456' ? • '579' •
'123' . '456'牫 • '123456' Basic PHP
Basic PHP
Basic PHP
Basic PHP
• Example: Basic PHP <?php if ($a != $b) {
if (md5($a) == md5($b)){ echo $flag; } }
• Example: Basic PHP <?php if ($a != $b) {
if (md5($a) == md5($b)){ echo $flag; } } $a = QNKCDZO $b = s878926199a
• Example: Basic PHP <?php if ($a != $b) {
if (md5($a) == md5($b)){ echo $flag; } } $a = QNKCDZO $b = s878926199a md5() 0e830400451993494058024219903391 0e545993274517709034328855841020
Basic PHP
啊現在的 PHP 都會改 用 === 跟 !== 了啊
但是 PHP 還有一個潮 潮的酷東東
• md5([]) Array !
• md5([]) • NULL • strcmp([], []) Array !
• md5([]) • NULL • strcmp([], []) • NULL •
sha1([]) Array !
• md5([]) • NULL • strcmp([], []) • NULL •
sha1([]) • NULL Array !
• Example: Array ! <?php if ($a !== $b) {
if (md5($a) === md5($b)){ echo $flag; } } $a = [1] $b = [2]
• Example: Array ! <?php if ($a !== $b) {
if (md5($a) === md5($b)){ echo $flag; } } $a = [1] $b = [2] md5() NULL NULL
Array !
Array !
Array ! ̖ https://dev.to/2dsharp/php-sucks-can-it-suck-less-1mjb
Lab Web2 PHP sucks
XSS Cross-Site Scripting
• 在使用者的頁面上面執行惡意的 JavaScript XSS
• 在使用者的頁面上面執行惡意的 JavaScript • Ԇᥝฎ猂 cookie XSS
XSS <?php if (!empty($_GET['input'])){ echo $_GET['input']; }
• 玱疤ࣳ • 疥֦ጱ䘣纷ୗ嘨蝑ک Server 牧㪔Ӭኧ Server 薹ຉ • 㱪ਂࣳ
• ֦ጱ䘣纷ୗ嘨ᤩ㱪ਂࣁ Server • DOM XSS • ፗ矑ኧਮ䜛ᒒ藉咳 XSS 圵觊
• HTML 可以執行 JavaScript 的是 <script> XSS ᴠ纠牫
• HTML 可以執行 JavaScript 的是 <script> • 那不就過濾掉 <script>!"script> 就好ㄌ
XSS ᴠ纠牫
• HTML 可以執行 JavaScript 的是 <script> • 那不就過濾掉 <script>!"script> 就好ㄌ
XSS ᴠ纠牫
• <svg/onload=alert()> • <img src=@ onerror=alert()> • <a href=@ onclick=alert()>
• <body onload=alert()> XSS !
作業 Web2 Infoleak
作業 Web2 Make PHP Great Again!
最後 有意願打 CTF 的可以私下 來找我ㄛ