본문 바로가기

34

web-ssrf 보호되어 있는 글 입니다. 2022. 9. 13.
file-download-1 보호되어 있는 글 입니다. 2022. 9. 6.
image-storage 보호되어 있는 글 입니다. 2022. 9. 6.
command-injection-1 [문제] [풀이] @APP.route('/ping', methods=['GET', 'POST']) def ping(): if request.method == 'POST': host = request.form.get('host') cmd = f'ping -c 3 "{host}"' try: output = subprocess.check_output(['/bin/sh', '-c', cmd], timeout=5) return render_template('ping_result.html', data=output.decode('utf-8')) except subprocess.TimeoutExpired: return render_template('ping_result.html', data='Timeout !') ex.. 2022. 9. 3.
Mango [문제] [풀이] app.get('/login', function(req, res) { if(filter(req.query)){ res.send('filter'); return; } const {uid, upw} = req.query; db.collection('user').findOne({ 'uid': uid, 'upw': upw, }, function(err, result){ if (err){ res.send('err'); }else if(result){ res.send(result['uid']); }else{ res.send('undefined'); } }) }); /login 페이지를 구성하는 코드이다. 코드를 살펴보면 이용자가 쿼리로 전달한 uid와 upw로 데이터베이스를 검색하고, 찾아낸 이용.. 2022. 9. 3.
simple_sqli [문제] [풀이] DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpassword char(100));') db.execute(f'insert into users(userid, userpassword) values ("guest", "guest"), ("admin", "{binascii.hexlify(os.urandom(16)).decode("utf8")}");') db.commit() db.close() 데이터베이스를 구성하는 코드이다. 코드를 살펴보면 userid와 userpassword .. 2022. 9. 3.