[PYTHON] Fiche d'activité dans le cercle de programmation

À propos de cet article

J'écrirai un résumé de ce que j'ai fait dans le département de sécurité du Computer Study Group pour la sortie. Nous en ajouterons de plus en plus chaque vendredi.

19 juin

Contenu de l'activité: Je suis allé aux parties 3 et 4 de https://google-gruyere.appspot.com/.

Défi: créer une application Web qui vous permet de faire l'expérience de l'attaque de traversée

Structure du répertoire


.
├── templates
│   └── index.html
├── a.txt
├── b.txt
├── c.txt
├── pass.txt
└── app.py

index.html


<!doctype html>
<html lang="ja">

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
	<title>Hello Jinja2</title>
</head>

<body>
	<h1>Application Web qui vous permet d'expérimenter l'attaque de traversée</h1>
	<p>Veuillez saisir le nom du fichier que vous souhaitez afficher dans le formulaire ci-dessous</p>
	<p><strong>a.txt</strong> <strong>b.txt</strong> <strong>c.txt</strong>Vous pouvez choisir.</p>
	
	<form action="/" method="POST" enctype="multipart/form-data">
		<div>
			<label for="name">nom de fichier:</label>
			<input type="text" id="name" name="name" placeholder="Nom">
		</div>
		<div>
			<input type="submit" value="Envoyer">
		</div>
	</form>
	<p>{{data}}</p>
	<br><br><br>
	<h4>Commentaire</h4>
	<p>Ce site recherche un fichier avec le nom de fichier reçu dans le répertoire et le renvoie tel quel</p>
	<p>Par conséquent, si un nom de fichier qui ne devrait pas être saisi est entré, un fichier confidentiel peut être renvoyé.</p>
	<h3>pass.Entrons txt</h3>
</body>

</html>

a.txt


C'est un.Le contenu de txt.

b.txt


C'est b.Le contenu de txt.

c.txt


C'est c.Le contenu de txt.

pass.txt


J'ai pu extraire de précieuses données de mot de passe.

app.py


# -*- coding: utf-8 -*-
from flask import Flask, render_template, request

app = Flask(__name__)
	
@app.route('/', methods=['POST'])
def post():
	name = request.form.get('name')
	data = ""
	try:
		f = open(name)
		data = f.read()
		f.close()
	except:
		pass

	return render_template('index.html', data = data)

if __name__ == '__main__':
	app.run()

Tout ce que j'avais à faire était de configurer un serveur local, alors je l'ai écrit en utilisant Flask. C'était ridiculement facile à mettre en œuvre, donc c'était comme Flask!. Y a-t-il vraiment quelqu'un qui met en œuvre un tel vulnérable stupide?

12 Juin

Contenu de l'activité: J'ai fait part0, part1 et part2 de https://google-gruyere.appspot.com/.

Ce que j'ai appris: Il existe différents types de XSS (cross-site scripting) tels que le type réfléchissant, le type d'accumulation et le xss basé sur DOM. Prendre des mesures contre XSS et désinfecter (échapper).

Défi: créer une page Web sur laquelle vous pourrez découvrir XSS basé sur DOM

xss.html


<html>
  <title>DOM Based XSS</title>
  <h1>Un site où vous pouvez découvrir le XSS basé sur DOM</h1>
  Hi
  <script charset="UTF-8">
    var pos=document.URL.indexOf("name=")+5;
    document.write(unescape(document.URL.substring(pos,document.URL.length)));
  </script>
  <br><br>
  <p>Si vous donnez un nom en paramètre à la fin de l'url de cette page, il réécrira dynamiquement le HTML</p>
  <p>(Exemple) 〜〜xss.html?name=Taro</p>
  <p>Je pense que le nom est affiché après Salut en haut.</p><br>
  <P>Cependant, ce site l'exécutera lorsqu'un script malveillant est placé dans le paramètre.</P>
  <p>(Exemple) 〜〜xss.html?name=&ltscript&gtalert("Your PC was broken!!")&lt/script&gt</p>
  <P>Être capable d'alerter vous obligera à exécuter un script qui a en fait un effet négatif.</P>
  </html>

Recommended Posts

Fiche d'activité dans le cercle de programmation
Programmation pour combattre dans le monde ~ 5-1
Programmation pour combattre dans le monde ~ 5-5,5-6
Programmer pour combattre dans le monde 5-3
Programmation pour combattre dans le monde - Chapitre 4
Programmation pour combattre dans le monde ~ 5-2
Le langage de programmation le plus recherché en 2020
Dessiner des graphiques dans le langage de programmation Julia
Programmation avec Python
Enregistrement d'apprentissage de la programmation 2ème jour
Programmation Python avec Excel
Parlez de l'API d'acquisition du temps dans le langage de programmation
J'ai participé à l'activité de traduction du document officiel Django
J'ai essayé de programmer le test du chi carré en Python et Java.
10 langages de programmation les plus populaires en 2020
Trouver des erreurs en Python
Méthodes disponibles dans la liste
La popularité des langages de programmation
Langage de programmation dont les jeunes auront besoin à l'avenir