хай, недавно участвовал в организации VolgaCTF 2013, писал таск на python 2.7
Все было здорово, планировалась xPath инъекция, код был примерно такой:
PHP код:
import xml.etree.ElementTree as ET
statistica = {}
try:
statistica = ET.parse('statistica.xml').getroot()
except Exception, e:
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
Решив, что черт с ним, и команды должны догадаться, так и оставил.
Но это частный случай, так как были атрибуты.
мб кто предложит вектор, чтобы и кавычки закрылись, и синтаксис верным был, и атрибуты не юзались?