Subaru's Husband -19ページ目

Subaru's Husband

python、linux、バイクなんかのネタを書きます。
一応security業界でご飯を食べてます。
備忘録がメインだと思うので、未来の自分が助かれば最高。

今日はhiddenの項目でXSSがあったので、下記の文字列で確認しました。

"><p onmouseover=alert(document.cookie)>XSS</p><input type="hidden"

これでページが崩れないで綺麗に表示されましたよ。

普段使わない機能はメジャーなオープンソースでもXSSがあるんだよね。
トークンもあるし、悪用には向かない場所だからほっといても大丈夫なんだけどさ。

さぁて開発元に連絡しとかないと。

レスポンスからjsessionidを取り出して、貯めておいたURLのjsessionidと
置き換える必要があったんで試しに作ってみました。
でもこれだと、formのactionだけの場合に取得できないから、jsessionid=.*で正規表現かけて取得しないと。
BeautifulSoup使う必要なくなったじゃないか。

携帯サイトはCookie使えないし、トークン引き継がないとエラーになるサイトとかあるから大変だわ。
でもこれで大抵のサイトはログインしてクローリングできるはず。
後はinputフィールド自動判断したり、javascript解析やらかなぁ。

import re
import BeautifulSoup

html = '<a href="https://www.test.com/accounts/ServiceLogin;jsessionid=1234567?hl=ja&amp;continue=http://www.test.co.jp/" class="gb4">ログイン</a>'
soup = BeautifulSoup(html)

delimiter = ['"',"'",'&','?']
_r = re.compile('jsessionid=.*?[{0}|{1}|{2}|{3}]'.format('"',"'",'&','?'),re.IGNORECASE)

for input_tag in soup.findAll('a'):
_href = dict(input_tag.attrs)['href']
tmp = _r.search('r"{0}"'.format(_href))
_session = str(tmp.group())
print _session.rstrip(''.join(delimiter))
soup = BeautifulSoup(html)

delimiter = ['"',"'",'&','?']
_r = re.compile('jsessionid=.*?[{0}|{1}|{2}|{3}]'.format('"',"'",'&','?'),re.IGNORECASE)

for input_tag in soup.findAll('a'):
_href = dict(input_tag.attrs)['href']
tmp = _r.search('r"{0}"'.format(_href))
_session = str(tmp.group())
print _session.rstrip(''.join(delimiter))