kali系统-5

pan-logs / 2023-08-17 / 原文

 

命令执行漏洞:在搭建的DVWA中,体验利用命令执行漏洞执行额外的命令,并从中了解不同防御等级,对待命令执行漏洞的防御源代码的变动。

    命令执行漏洞的攻击:

        在练习的DVWA中,有一个command injection,在其中输入IPping时,在IP后加上字符"&" "|" + 命令,便可在终端执行命令。

    命令执行漏洞的防御:

      

     impossible等级的源代码:1 将转义字符“\”去掉

                2 将输入的内容根据“.”分为四段,分别验证是否为数字

                3 拼接四段数字

 

SQL注入:与命令执行漏洞类似,在一个需要前后端数据交互的地方,输入正常查询的内容+额外执行的语句,若网页端或后台无检查,则额外执行的语句可能会被执行。

    SQL注入漏洞通用逻辑:

            1 判断是否有SQL注入漏洞。例如:在某个输入框中输入“待输入内容' 1=1#”与“待输入内容' 1=2#”,分别得到正确执行和不能正确执行,则存在SQL注入

            2 若存在SQL漏洞,则根据数据库知识,利用union函数,不停的查询想要在数据库中的内容。

    SQL注入自动化工具:SQLmap

            1 利用SQLmap查看数据库类型,以及是否存在SQL注入漏洞

              命令:sqlmap -u "http://localhost/DVWA/vulnerabilities/sqli/?id=&Submit=Submit#" --cookie "PHPSESSID=uhqr2lqdbev4j00q5rp4dhc5rn; security=low"

              注意点:要点击submit按钮后,获取的URL和cookie才有效

            

            2 获取数据库名。在1的命令后+ --dbs

            

            3 获取指定数据库表。在1的命令后+ -D 数据库名 --tables  

          即:sqlmap -u "http://localhost/DVWA/vulnerabilities/sqli/?id=&Submit=Submit#" --cookie "PHPSESSID=uhqr2lqdbev4j00q5rp4dhc5rn; security=low" -D dvwa --tables

            

            4 获取表的列。

          即:sqlmap -u "http://localhost/DVWA/vulnerabilities/sqli/?id=&Submit=Submit#" --cookie "PHPSESSID=uhqr2lqdbev4j00q5rp4dhc5rn; security=low" -D dvwa -T users --columns    

            

             5 获取内容。--dump

 

      SQL注入的防御:

            在DVWA的SQL injection中,查看不同等级的源代码。

            最高级的源代码如下:

           

             所做的事情如下:  

            1 确定输入是否为数字

            2 再次确定是否为数字

            3 prepare做数据预处理

            4 bindParam绑定参数,并确定为整型