web-dev-qa-db-ja.com

Hacker101スポイラー#2 EASY Micro-CMS v1

私はただCTFとハッキング全般に取り組んでいます。私が最後にアポストロフィを追加したときにこれが機能する理由について非常に混乱しています。 Burp Community Editionスイートを使用していて、HTTPライブヘッダーを使用しています。

http://example.com/page/edit/2'が通常のページであるのに対して、http://example.com/page/edit/2を追加するとフラグがどのように表示されるかを理解しようとはしていません。情報をいただければ幸いです

ここに見られるように

Flag Revealed

Burpを使用して、私がリクエストで見る唯一の違いは

と表示されます

GET /page/edit/2 HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

そしてなしで、それは示しています

GET /page/edit/2' HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

したがって、唯一の違いはCache-Control HTTPヘッダーであると思われますが、それでよろしいですか?

Cache-Control: max-age=0

そしてHTTP Liveヘッダーから

http://example.com/page/edit/2'    
Host: example.com    
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:70.0) Gecko/20100101 Firefox/70.0    
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8    
Accept-Language: en-US,en;q=0.5    
Accept-Encoding: gzip, deflate    
Upgrade-Insecure-Requests: 1    
Connection: keep-alive    
GET: HTTP/1.1 200 OK    
Server: nginx/1.14.0 (Ubuntu)    
Date: Mon, 09 Sep 2019 16:18:40 GMT    
Content-Type: text/html; charset=utf-8    
Connection: close    
Content-Length: 76
2
ruevaughn

SQLインジェクションの可能性があります。 'はSQLの文字列を制限するために使用されるため、'区切ります。

FLAG文字列が適切にエスケープされなかったようです。そのため、文字区切り文字を追加するとフラグが返されます。

これは、SQLiの脆弱性をテストする人々にとって一般的な手法です。 Web CTFには多くの推測が含まれているため、推測し続ける準備をしてください。

1
Yuu