%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const http = require('http'); const net = require('net'); const assert = require('assert'); // Verify that invalid chunk extensions cannot be used to perform HTTP request // smuggling attacks. const server = http.createServer(common.mustCall((request, response) => { assert.notStrictEqual(request.url, '/admin'); response.end('hello world'); }), 1); server.listen(0, common.mustCall(start)); function start() { const sock = net.connect(server.address().port); sock.write('' + 'GET / HTTP/1.1\r\n' + 'Host: localhost:8080\r\n' + 'Transfer-Encoding: chunked\r\n' + '\r\n' + '2;\n' + 'xx\r\n' + '4c\r\n' + '0\r\n' + '\r\n' + 'GET /admin HTTP/1.1\r\n' + 'Host: localhost:8080\r\n' + 'Transfer-Encoding: chunked\r\n' + '\r\n' + '0\r\n' + '\r\n' ); sock.resume(); sock.on('end', common.mustCall(function() { server.close(); })); }