作业2:漏洞检测

作业2


  1. 文中的PoC是什么意思,另外自行扩展学习两个概念:exp payload是什么意思,描述三者差别和关系。

    • PoC:全称是 Proof of Concept,即概念验证的意思,常指一段漏洞证明的代码。

    • exp:全称是 Exploit,中文的意思是利用,指利用系统漏洞进行攻击的动作。

    • payload:中文是指有效载荷,指成功exploit之后,真正在目标系统执行的代码或指令。

    PoC 是用来证明漏洞存在的,exp 是用来利用漏洞的,两者通常不是一类。或者说,PoC 通常是无害的,Exp 通常是有害的,有了 PoC,才有 Exp。payload 有很多种,它可以是 Shellcode,也可以直接是一段系统命令。同一个 payload 可以用于多个漏洞,但每个漏洞都有其自己的 exp,也就是说不存在通用的 exp。

  2. 根据“漏洞代码定位”中的漏洞代码,详述漏洞的成因是什么。

    漏洞的成因是直接使⽤ SEND_TIME 作为 SQL 语句中排序值,因此,可以在请求界⾯更改请求,进⾏ SQL 注⼊。

  3. 根据"获取表列数的PoC",说明两个测试请求导致的: 后台执行的大概sql语句、数据库运行结果和产生的执行效果的原理。
    在这里插入图片描述

    通过观察返回值报文可知:返回值为 timestap,curnum,pagenum,data。对于 order 语句:

    SELECT * FROM email_table ORDER BY 1;
    

    表⽰按照第⼀列进⾏排序,因此,我们只需要改变 order 的值,当返回为假时,表⽰不存在这⼀列。数据库运⾏的⼤概语句:

    ELECT
    EMAIL_ID,TO_ID,READ_FLAG,DELETE_FLAG,EMAIL_BODY.BODY_ID,TO_ID2,COPY_TO_ID,TO_WEBM
    AIL,SUBJECT,SEND_TIME,ATTACHMENT_ID,ATTACHMENT_NAME,IMPORTANT,SIZE,IS_WEBMAIL,WEB
    MAIL_FLAG from EMAIL,EMAIL_BODY where EMAIL.BODY_ID=EMAIL_BODY.BODY_ID and
    FROM_ID='" . $_SESSION["LOGIN_USER_ID"] . "' and SEND_FLAG='1' and
    DELETE_FLAG!='2' and DELETE_FLAG!='4' " . $WHERE_STR . " group by EMAIL.BODY_ID
    ORDER BY 16;
    

    执⾏时按照第 16 列进⾏排序,因此,当值为 17 时报错,说明表只有 16 列。

  4. 判断“漏洞PoC”中的利用方式是哪种 SQL 注入方式(Union,报错,boolean盲注,时间盲注),并解读说明使用的注入语句含义。

    属于boolean盲注,注⼊部分:

    1+RLIKE+(SELECT+(CASE+WHEN(substr(user(),1,1)=0x73)+THEN+1+ELSE+0x28+END))
    

    在 MySQL 中,RLIKE 运算符⽤于确定字符串是否匹配正则表达式。我们观察后⾯的正则匹配语句:

    (SELECT+(CASE+WHEN(substr(user(),1,1)=0x73)+THEN+1+ELSE+0x28+END))
    

    发现只有当 user() 的第⼀个字符 ASCII 值为 0x73 时,值为 1,否则为空。再由 1 与正则表达式进⾏匹配,则只有只有当 user() 的第⼀个字符 ASCII 值为 0x73 时 order 的值才为 1,否则为 0,必报错。因此,可以通过此语句获得 user 的值。

  5. 参照漏洞Poc,写出获取当前数据库名长度的利用代码。

    代码如下:

    1+RLIKE+(SELECT+(CASE+WHEN(length(database())=0x31)+THEN+1+ELSE+0x28+END))
    

    可以使⽤ burpsuit 对 0x31 进⾏替换,注意,数值必须使⽤ ascii 值,不然会被过滤。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值