Skip to content

Instantly share code, notes, and snippets.

@hasegawayosuke
hasegawayosuke / winget-mklinks.bat
Created January 5, 2024 06:11
wingetでインストールされたバイナリへのハードリンクを %HOMEDRIVE%%HOMEPATH%\bin\ に作成する
// SSRF保護の実装サンプル
// (これでも漏れがあるかも)
'use strict'
const os = require('os')
const net = require('net')
const dns = require('dns')
const http = require('http')
const https = require('https')
const myFetch = (url) => {
@hasegawayosuke
hasegawayosuke / async_rex.js
Created February 23, 2022 08:27
Asynchronous RegExp for node.js with termination
const { Worker, isMainThread, workerData, parentPort } = require('worker_threads')
if (isMainThread) {
class AsyncRex {
constructor (pattern, flags) {
if (pattern instanceof RegExp) {
this.source = pattern.source
this.flags = pattern.flags
} else if (typeof pattern === 'string') {
this.source = pattern
@hasegawayosuke
hasegawayosuke / index.js
Last active February 18, 2022 13:13
RegExp in worker_threads
// access to http://localhost:3000?n=65536
const http = require('http')
const {URL} = require('url')
const {Worker} = require('worker_threads')
const rex = /\s+$/
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
@hasegawayosuke
hasegawayosuke / owasp-top-10-2021-index.ja.md
Created September 9, 2021 04:43
OAWSP Top 10 2021 ja

この文書は https://github.com/OWASP/Top10/blob/master/2021/docs/index.md の前半を @hasegawayosuke が私的に訳したものです。正確性には欠けますので取扱いには自身で注意してください。


OWASP Top 10 2021の紹介

最新のOWASP TOP 10へようこそ! OWASP TOP 10 2021は新しいグラフィックデザイン、印刷もできる1ページのインフォグラフィックの全てが刷新されたものです。

この更新作業に時間とデータを提供してくれた全ての人に心から感謝いたします。あなたがいなければこの成果は出せませんでした。 ** ありがとうございます。 **

@hasegawayosuke
hasegawayosuke / got-with-proxy.js
Created October 20, 2020 03:48
got with proxy
const got = require('got')
const myGot = async (url) => {
const instance = got.extend({
hooks: {
beforeRequest: [
options => {
options.headers.Host = (new URL(url)).hostname
options.port = 8888
options.hostname = '127.0.0.1'
options.url = url
@hasegawayosuke
hasegawayosuke / index.js
Last active June 3, 2020 09:42
インターネット側から自宅のネットワーク(IPv6)へのアクセスがきちんとファイアウォールで遮断されているかを確認するための補助スクリプト
/* インターネット側から自宅のネットワーク(IPv6)へのアクセスがきちんとファイアウォールで遮断されているかを確認するためのスクリプト
*
* 1. 自PCのIPv6アドレスを列挙する
* 2. そのIPアドレスでlistenしたHTTPサーバーが起動される
* 3. そのサーバーのURLはQRコードとして表示される
* 4. スマホなどでWi-Fiではなくキャリア回線を通じて3.のQRコードにアクセスすることで疎通が確認できる
*
* node.js をインストールした環境で `node index.js` するだけ。あとは画面の指示に従ってスマホ等でアクセスする。
*/
@hasegawayosuke
hasegawayosuke / BOOTSTRAM.ROM
Last active May 3, 2020 02:11
CPUエミュレータ
:000
0354 LEA GR4,0100H
0100
0141 LD GR1,0,GR4
0000
0311 LEA GR1,-1,GR1
FFFF
0214 ST GR1,11,GR4
000B
0342 LEA GR2,1,GR4
@hasegawayosuke
hasegawayosuke / hook-getUserMedia.js
Created April 22, 2020 12:20
Google MeetでgetUserMediaをhookして好きな動画ファイルをカメラ替わりに流す
(()=>{
const file = document.createElement('input');
const video = document.createElement('video');
video.loop = true;
file.setAttribute('type', 'file');
file.addEventListener('change', (evt) => {
const url = window.URL.createObjectURL(file.files[0]);
video.src = url;
video.muted = true;
video.playbackRate = 1.0; // 動画の再生速度を変更したいときはこのパラメータを変える。
@hasegawayosuke
hasegawayosuke / vip.gas
Created January 26, 2020 01:45
Google Forms経由で匿名でSlackに投稿するGoogle Apps Script
/*
Google Forms経由で匿名でSlackに投稿するGoogle Apps Script
*/
var config = {
slack: {
token: 'xoxp-XXXXXXXXXXX-XXXXXXXXX...',
iconEmoji: ':mona:',
},
channel: '#channel',
};