LoginSignup
2

XSS Sample PHP

Last updated at Posted at 2022-08-15

はじめに

以下2行追記です。:bow_tone1:
もし、XSSがあるか調べたい時どのように調べればいいだろうのヒントになればと以下記事作成しました!
(ここではコード視点というより実際に何かを入力して見つけるみたいなものです。)
https://qiita.com/sachiko-kame/items/d6128c0674a75f5ec809

:cat:XSSのチェックのためにどんなもの打ち込めばいいの?
:bear:本当にそれ攻撃のコードとして機能しているの?
:whale:この対策だけで問題ないかを自分で打ち込んで確認したいのだが、、

みたいな私の中の住人達のモヤモヤがあったので作ってみました!のご紹介記事となります!

基本github参考でよろしくお願いします!

このパターン抜けてない?みたいのあれご指摘よろしくお願いいたします!

あとコード等少し微調整しているので少し動画とか違います。ご了承ください。

注意

docker使ったことがないや、Dockerで使用しているipアドレスとかよく分からないだとgithubだけではちょっと説明不足かと思っています。すみません。(実際起動してコードいじりたい方は的なやつです)

実際のリポジトリ

実際確認してる動画

XSSサンプル.gif

以下に動画でも上げています。
https://github.com/sachiko-kame/XSSPHPSample/issues/1

攻撃コードサンプル(githubの方にも記載)

<script>alert('aa')</script>

<p style="background-color: red;">aaaa</p><script>alert('aa')</script>

1 onclick=alert('aa');

javascript:alert('aa')

XSS基本どんなこと気をつけるべき?

エスケープ忘れない
""とか囲っているものとかは"のエスケープも忘れず
URLのチェック忘れない。
特殊文字として機能しているものとかのエスケープも忘れずに
属性値は必ずダブルクォートで囲む

@ockeghem さんにご指摘いただけたので内容追加させていただきました!ヽ(´▽`)/ありがとうございます!!!!!

属性値とは、以下の場合『aaaa』の箇所です!

<input type="button" value="aaaa">

更なる補足説明。

属性値がダブルクォート『"』で囲まれている例
<input type="button" value="aaaa">

属性値がダブルクォート『"』で囲まれていない例
<input type="button" value=aaaa>

色々なリンクの参考(githubの方にも記載)

dockerファイルイメージについて
https://hub.docker.com/_/php

dockerファイルコマンド[build]
https://docs.docker.jp/engine/reference/builder.html

悪意あるスクリプト参考
https://www.tohoho-web.com/ex/xss.html

ipaのリンクも
https://www.ipa.go.jp/files/000017316.pdf

最後に

記事みてくださいましてありがとうございます!ヽ(´▽`)/

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2