Старый 10.09.2013, 20:03   #1
HeartLESS
 
Регистрация: 25.04.2012
Сообщений: 101
Репутация: 31
По умолчанию xpath в lxml, elementTree и прочее

хай, недавно участвовал в организации VolgaCTF 2013, писал таск на python 2.7
Все было здорово, планировалась xPath инъекция, код был примерно такой:
PHP код:
import xml.etree.ElementTree as ET

statistica 
= {}

try:
    
statistica ET.parse('statistica.xml').getroot()

except Exceptione:
    
statistica ET.fromstring('<root></root>')
class 
Statistica(tornado.web.RequestHandler):
    
def get(self):
        
        
xml_root statistica
        session 
self.get_cookie("session")
        
nodi xml_root.findall("./utente/session[@value='%s']/.." % ( session, ))
        for 
nodo in nodi:
            ... 
Как же я расстроился, узнав следующее
Вкратце: lxml и elementTree не умеют Xpath полностью: не умеет and, or, pipe, .text() и кучу других вещей.
Пришлось переписывать придумывать альтернативный вектор:
my_real_session']/../../utente/commenti[@value='1

Решив, что черт с ним, и команды должны догадаться, так и оставил.
Но это частный случай, так как были атрибуты.
мб кто предложит вектор, чтобы и кавычки закрылись, и синтаксис верным был, и атрибуты не юзались?
HeartLESS вне форума   Ответить с цитированием
Старый 31.05.2014, 23:04   #2
HeartLESS
 
Регистрация: 25.04.2012
Сообщений: 101
Репутация: 31
По умолчанию

Добавлю, чтобы не забыть:
в xpath можно дернуть plaintext через substring(//node(),§1§,1) = '§a§'
__________________
Jokester: Ок, с тобой проще согласиться чем переубедить. :)
HeartLESS вне форума   Ответить с цитированием
Ответ

Метки
lxml, python, xpath

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot