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
racterub
October 20, 2020
Programming
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ITAC | Websec 2
ITAC | Websec 2
racterub
October 20, 2020
More Decks by racterub
See All by racterub
IM620 Web Security
racterub
0
160
ITAC | Websec 3
racterub
0
250
ITAC | Websec 1
racterub
0
270
ITAC | Linux Basics
racterub
0
140
Introducing Reverse Engineering @ YZU CS250
racterub
0
240
ITAC | Jinja & Bootstrap
racterub
1
140
ITAC | Flask - Basic Flask
racterub
1
110
ITAC-Flask | Environment setup
racterub
1
110
Other Decks in Programming
See All in Programming
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
330
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
290
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
440
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
120
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
160
数百円から始めるRuby電子工作
tarosay
0
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
460
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
430
FDEが実現するAI駆動経営の現在地
gonta
2
240
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
140
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.7k
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Designing Experiences People Love
moore
143
24k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
230
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
650
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
The Language of Interfaces
destraynor
162
27k
The SEO identity crisis: Don't let AI make you average
varn
0
520
How STYLIGHT went responsive
nonsquared
100
6.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Visualization
eitanlees
152
17k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
480
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 的可以私下 來找我ㄛ