{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":660196405,"defaultBranch":"main","name":"portswigger-labs","ownerLogin":"aboelkassem","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-06-29T13:09:57.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/42910789?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1689018494.0","currentOid":""},"activityList":{"items":[{"before":"d3e4e0c0fc3d9e857104e5a4e14731b8954a103c","after":null,"ref":"refs/heads/imgbot","pushedAt":"2023-07-10T19:48:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"imgbot[bot]","name":null,"path":"/apps/imgbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/4706?s=80&v=4"}},{"before":"20a56c3be68814ea03ac8d44e3f9b318fb2f368f","after":"344d4488e5bb25d7b5b5c00c0596c202b5eef3c4","ref":"refs/heads/main","pushedAt":"2023-07-10T19:47:40.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Merge pull request #7 from aboelkassem/imgbot","shortMessageHtmlLink":"Merge pull request #7 from aboelkassem/imgbot"}},{"before":null,"after":"d3e4e0c0fc3d9e857104e5a4e14731b8954a103c","ref":"refs/heads/imgbot","pushedAt":"2023-07-10T18:44:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"imgbot[bot]","name":null,"path":"/apps/imgbot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/4706?s=80&v=4"},"commit":{"message":"[ImgBot] Optimize images\n\n*Total -- 18,439.53kb -> 13,758.76kb (25.38%)\n\n/Insecure deserialization/Lab Exploiting Java deserialization with Apache Commons/image4.png -- 81.70kb -> 39.45kb (51.72%)\n/Authentication/Lab Brute-forcing a stay-logged-in cookie/image2.png -- 12.03kb -> 6.11kb (49.16%)\n/Insecure deserialization/Lab Arbitrary object injection in PHP/image1.png -- 113.56kb -> 61.83kb (45.56%)\n/Authentication/Lab Broken brute-force protection, IP block/image1.png -- 39.51kb -> 21.96kb (44.43%)\n/JWT/Lab JWT authentication bypass via weak signing key/image1.png -- 76.14kb -> 44.30kb (41.82%)\n/HTTP request smuggling/image4.png -- 118.76kb -> 72.03kb (39.35%)\n/Server-side template injection/Lab Server-side template injection with information disclosure via user-supplied objects/image1.png -- 189.46kb -> 115.17kb (39.21%)\n/Server-side template injection/Lab Server-side template injection with information disclosure via user-supplied objects/image2.png -- 187.23kb -> 115.43kb (38.34%)\n/HTTP request smuggling/image3.png -- 71.95kb -> 44.37kb (38.34%)\n/Authentication/Lab Brute-forcing a stay-logged-in cookie/image4.png -- 48.26kb -> 29.83kb (38.19%)\n/Server-side template injection/Lab Server-side template injection using documentation/image1.png -- 325.54kb -> 201.50kb (38.1%)\n/Authentication/Lab 2FA bypass using a brute-force attack/image5.png -- 47.46kb -> 29.41kb (38.05%)\n/HTTP request smuggling/image1.png -- 110.04kb -> 68.28kb (37.95%)\n/Server-side template injection/Lab Basic server-side template injection/image2.png -- 254.74kb -> 158.44kb (37.8%)\n/JWT/Lab JWT authentication bypass via unverified signature/image3.png -- 59.54kb -> 37.04kb (37.8%)\n/JWT/Lab JWT authentication bypass via flawed signature verification/image1.png -- 66.22kb -> 41.24kb (37.72%)\n/Server-side template injection/Lab Server-side template injection with information disclosure via user-supplied objects/image3.png -- 205.52kb -> 128.46kb (37.49%)\n/Server-side template injection/Lab Server-side template injection using documentation/image2.png -- 210.57kb -> 131.72kb (37.45%)\n/JWT/Lab JWT authentication bypass via jku header injection/image1.png -- 100.26kb -> 63.22kb (36.94%)\n/Authentication/Lab Username enumeration via subtly different responses/image2.png -- 39.03kb -> 24.73kb (36.65%)\n/Insecure deserialization/Lab Exploiting Java deserialization with Apache Commons/image3.png -- 102.98kb -> 65.25kb (36.64%)\n/Authentication/Lab Username enumeration via response timing/image5.png -- 45.12kb -> 28.59kb (36.63%)\n/Server-side template injection/Lab Server-side template injection using documentation/image3.png -- 252.61kb -> 160.38kb (36.51%)\n/Authentication/Lab 2FA broken logic/image4.png -- 85.54kb -> 54.41kb (36.39%)\n/Server-side template injection/Lab Server-side template injection in an unknown language with a documented exploit/image1.png -- 175.95kb -> 111.97kb (36.36%)\n/Authentication/Lab Username enumeration via different responses/image3.png -- 51.50kb -> 32.81kb (36.28%)\n/Authentication/Lab 2FA bypass using a brute-force attack/image3.png -- 23.19kb -> 14.82kb (36.12%)\n/Authentication/Lab Username enumeration via subtly different responses/image4.png -- 39.79kb -> 25.43kb (36.1%)\n/Authentication/Lab Broken brute-force protection, multiple credentials per request/image1.png -- 51.36kb -> 32.82kb (36.09%)\n/JWT/Lab JWT authentication bypass via jku header injection/image3.png -- 156.25kb -> 100.21kb (35.87%)\n/JWT/Lab JWT authentication bypass via jwk header injection/image2.png -- 122.31kb -> 78.62kb (35.72%)\n/Authentication/Lab 2FA bypass using a brute-force attack/image1.png -- 44.34kb -> 28.59kb (35.53%)\n/Authentication/Lab 2FA broken logic/image2.png -- 56.38kb -> 36.50kb (35.27%)\n/HTTP request smuggling/image2.png -- 84.55kb -> 55.05kb (34.89%)\n/Authentication/Lab 2FA broken logic/image6.png -- 46.94kb -> 30.57kb (34.88%)\n/JWT/Lab JWT authentication bypass via jku header injection/image4.png -- 134.23kb -> 87.43kb (34.87%)\n/OAuth2/Lab Authentication bypass via OAuth implicit flow/image3.png -- 66.01kb -> 43.00kb (34.86%)\n/JWT/Lab JWT authentication bypass via unverified signature/image1.png -- 74.54kb -> 48.68kb (34.68%)\n/JWT/Lab JWT authentication bypass via unverified signature/image2.png -- 44.26kb -> 28.94kb (34.61%)\n/Authentication/Lab 2FA bypass using a brute-force attack/image8.png -- 68.90kb -> 45.13kb (34.49%)\n/Authentication/Lab Username enumeration via response timing/image4.png -- 31.17kb -> 20.55kb (34.06%)\n/Authentication/Lab 2FA bypass using a brute-force attack/image4.png -- 26.50kb -> 17.50kb (33.96%)\n/Authentication/Lab Username enumeration via different responses/image5.png -- 49.98kb -> 33.12kb (33.74%)\n/Authentication/Lab Password reset broken logic/image2.png -- 67.13kb -> 44.50kb (33.71%)\n/Insecure deserialization/Lab Modifying serialized objects/image7.png -- 67.10kb -> 44.64kb (33.48%)\n/Authentication/Lab Username enumeration via subtly different responses/image6.png -- 68.25kb -> 45.47kb (33.37%)\n/Authentication/Lab 2FA simple bypass/image2.png -- 65.14kb -> 43.51kb (33.2%)\n/Authentication/Lab 2FA broken logic/image8.png -- 64.28kb -> 42.97kb (33.16%)\n/Authentication/Lab Username enumeration via different responses/image6.png -- 68.81kb -> 46.01kb (33.13%)\n/JWT/Lab JWT authentication bypass via unverified signature/image5.png -- 68.96kb -> 46.20kb (33.01%)\n/Authentication/Lab Username enumeration via response timing/image8.png -- 67.20kb -> 45.09kb (32.91%)\n/Authentication/Lab Brute-forcing a stay-logged-in cookie/image6.png -- 61.48kb -> 41.26kb (32.88%)\n/JWT/Lab JWT authentication bypass via weak signing key/image4.png -- 115.21kb -> 77.35kb (32.86%)\n/JWT/Lab JWT authentication bypass via jwk header injection/image1.png -- 69.73kb -> 46.90kb (32.74%)\n/Server-side template injection/Lab Basic server-side template injection (code context)/image4.png -- 60.72kb -> 40.87kb (32.69%)\n/Authentication/Lab 2FA bypass using a brute-force attack/image2.png -- 86.20kb -> 58.21kb (32.48%)\n/OAuth2/Lab Forced OAuth profile linking/image5.png -- 57.49kb -> 38.83kb (32.46%)\n/Authentication/Lab Broken brute-force protection, multiple credentials per request/image3.png -- 62.60kb -> 42.30kb (32.43%)\n/Authentication/Lab Username enumeration via different responses/image4.png -- 62.17kb -> 42.04kb (32.39%)\n/Authentication/Lab Username enumeration via account lock/image5.png -- 62.78kb -> 42.46kb (32.38%)\n/JWT/Lab JWT authentication bypass via jku header injection/image2.png -- 63.23kb -> 42.85kb (32.24%)\n/Authentication/Lab Username enumeration via account lock/image1.png -- 64.68kb -> 43.86kb (32.18%)\n/Authentication/Lab Broken brute-force protection, IP block/image2.png -- 29.44kb -> 19.96kb (32.18%)\n/Authentication/Lab 2FA bypass using a brute-force attack/image7.png -- 50.57kb -> 34.30kb (32.17%)\n/Authentication/Lab Username enumeration via account lock/image4.png -- 63.73kb -> 43.51kb (31.72%)\n/Authentication/Lab Brute-forcing a stay-logged-in cookie/image5.png -- 91.11kb -> 62.66kb (31.23%)\n/JWT/Lab JWT authentication bypass via weak signing key/image2.png -- 25.12kb -> 17.37kb (30.83%)\n/Authentication/Lab 2FA simple bypass/image1.png -- 55.92kb -> 38.88kb (30.47%)\n/Insecure deserialization/Lab Exploiting Java deserialization with Apache Commons/image2.png -- 49.28kb -> 34.30kb (30.4%)\n/HTTP request smuggling/Lab HTTP request smuggling, basic CL.TE vulnerability/image2.png -- 98.24kb -> 68.54kb (30.23%)\n/Authentication/Lab Broken brute-force protection, IP block/image3.png -- 91.07kb -> 63.93kb (29.8%)\n/JWT/Lab JWT authentication bypass via flawed signature verification/image2.png -- 111.13kb -> 78.17kb (29.66%)\n/Insecure deserialization/Lab Modifying serialized objects/image2.png -- 52.51kb -> 36.96kb (29.62%)\n/HTTP request smuggling/Lab HTTP request smuggling, basic CL.TE vulnerability/image3.png -- 74.12kb -> 52.20kb (29.58%)\n/HTTP request smuggling/Lab HTTP request smuggling, basic CL.TE vulnerability/image1.png -- 143.41kb -> 101.02kb (29.55%)\n/Insecure deserialization/Lab Modifying serialized objects/image5.png -- 125.68kb -> 88.64kb (29.47%)\n/Insecure deserialization/Lab Modifying serialized data types/image4.png -- 165.78kb -> 117.26kb (29.27%)\n/Authentication/Lab Username enumeration via response timing/image7.png -- 93.07kb -> 65.89kb (29.2%)\n/Authentication/Lab Broken brute-force protection, IP block/image4.png -- 92.32kb -> 65.36kb (29.2%)\n/JWT/Lab JWT authentication bypass via unverified signature/image4.png -- 134.33kb -> 95.18kb (29.14%)\n/Insecure deserialization/Lab Arbitrary object injection in PHP/image4.png -- 132.66kb -> 94.02kb (29.13%)\n/Insecure deserialization/Lab Modifying serialized objects/image1.png -- 138.83kb -> 98.44kb (29.09%)\n/Server-side template injection/Lab Basic server-side template injection (code context)/image1.png -- 105.46kb -> 75.00kb (28.89%)\n/Authentication/Lab Username enumeration via response timing/image6.png -- 98.36kb -> 69.96kb (28.87%)\n/HTTP request smuggling/Lab HTTP request smuggling, confirming a CL.TE vulnerability via differential responses/image1.png -- 101.40kb -> 72.15kb (28.85%)\n/Authentication/Lab Broken brute-force protection, multiple credentials per request/image2.png -- 98.75kb -> 70.36kb (28.75%)\n/HTTP request smuggling/Lab HTTP request smuggling, basic TE.CL vulnerability/image1.png -- 114.42kb -> 81.83kb (28.48%)\n/Insecure deserialization/Lab Using application functionality to exploit insecure deserialization/image2.png -- 157.65kb -> 112.84kb (28.42%)\n/Authentication/Lab Username enumeration via subtly different responses/image5.png -- 98.09kb -> 70.28kb (28.35%)\n/Authentication/Lab Username enumeration via subtly different responses/image1.png -- 53.05kb -> 38.01kb (28.34%)\n/OAuth2/Lab Authentication bypass via OAuth implicit flow/image1.png -- 126.55kb -> 90.89kb (28.18%)\n/Authentication/Lab Username enumeration via response timing/image2.png -- 126.81kb -> 91.21kb (28.07%)\n/Authentication/Lab 2FA broken logic/image7.png -- 83.62kb -> 60.16kb (28.06%)\n/Insecure deserialization/Lab Modifying serialized data types/image2.png -- 160.58kb -> 115.63kb (27.99%)\n/Authentication/Lab Username enumeration via account lock/image2.png -- 121.63kb -> 87.59kb (27.99%)\n/Authentication/Lab Brute-forcing a stay-logged-in cookie/image1.png -- 141.12kb -> 101.64kb (27.98%)\n/Insecure deserialization/Lab Using application functionality to exploit insecure deserialization/image1.png -- 162.69kb -> 117.25kb (27.93%)\n/Authentication/Lab 2FA bypass using a brute-force attack/image6.png -- 52.80kb -> 38.10kb (27.85%)\n/Authentication/Lab Username enumeration via subtly different responses/image3.png -- 149.08kb -> 107.68kb (27.77%)\n/Insecure deserialization/Lab Exploiting Java deserialization with Apache Commons/image1.png -- 206.49kb -> 149.27kb (27.71%)\n/Insecure deserialization/Lab Modifying serialized objects/image3.png -- 122.42kb -> 88.74kb (27.51%)\n/Authentication/Lab 2FA broken logic/image3.png -- 145.32kb -> 105.45kb (27.44%)\n/Insecure deserialization/Lab Modifying serialized objects/image4.png -- 112.42kb -> 81.70kb (27.33%)\n/JWT/Lab JWT authentication bypass via kid header path traversal/image1.png -- 50.52kb -> 36.76kb (27.24%)\n/Insecure deserialization/Lab Modifying serialized data types/image1.png -- 137.65kb -> 100.25kb (27.17%)\n/Insecure deserialization/Lab Arbitrary object injection in PHP/image3.png -- 106.96kb -> 77.99kb (27.09%)\n/HTTP request smuggling/Lab HTTP request smuggling, obfuscating the TE header/image1.png -- 99.37kb -> 72.55kb (26.99%)\n/Authentication/Lab 2FA broken logic/image5.png -- 113.38kb -> 83.03kb (26.76%)\n/OS Command Injection/Lab Blind OS command injection with time delays/image1.png -- 88.65kb -> 65.00kb (26.68%)\n/Authentication/Lab Username enumeration via response timing/image1.png -- 125.85kb -> 92.41kb (26.58%)\n/OS Command Injection/Lab OS command injection, simple case/image2.png -- 92.29kb -> 67.79kb (26.54%)\n/Insecure deserialization/Lab Arbitrary object injection in PHP/image2.png -- 79.02kb -> 58.06kb (26.53%)\n/Authentication/Lab 2FA broken logic/image1.png -- 91.31kb -> 67.25kb (26.35%)\n/JWT/Lab JWT authentication bypass via weak signing key/image3.png -- 42.45kb -> 31.29kb (26.27%)\n/Authentication/Lab Username enumeration via different responses/image2.png -- 91.98kb -> 67.84kb (26.24%)\n/Insecure deserialization/Lab Modifying serialized objects/image6.png -- 79.84kb -> 59.31kb (25.72%)\n/OAuth2/Lab Forced OAuth profile linking/image4.png -- 58.69kb -> 43.62kb (25.68%)\n/Authentication/Lab Username enumeration via different responses/image1.png -- 17.66kb -> 13.13kb (25.62%)\n/HTTP request smuggling/Lab HTTP request smuggling, basic CL.TE vulnerability/image6.png -- 55.42kb -> 41.26kb (25.56%)\n/OAuth2/Lab Forced OAuth profile linking/image3.png -- 102.86kb -> 76.79kb (25.34%)\n/JWT/Lab JWT authentication bypass via kid header path traversal/image2.png -- 108.71kb -> 81.70kb (24.85%)\n/Authentication/Lab Username enumeration via account lock/image3.png -- 84.89kb -> 63.80kb (24.84%)\n/Authentication/Lab Username enumeration via response timing/image3.png -- 87.62kb -> 65.93kb (24.75%)\n/OAuth2/Lab Authentication bypass via OAuth implicit flow/image2.png -- 75.46kb -> 56.84kb (24.67%)\n/OS Command Injection/Lab OS command injection, simple case/image1.png -- 75.45kb -> 56.84kb (24.66%)\n/HTTP request smuggling/Lab HTTP request smuggling, basic CL.TE vulnerability/image4.png -- 56.78kb -> 42.83kb (24.56%)\n/JWT/Lab JWT authentication bypass via weak signing key/image5.png -- 78.94kb -> 59.61kb (24.48%)\n/Authentication/Lab Password reset broken logic/image1.png -- 80.48kb -> 60.86kb (24.38%)\n/OAuth2/Lab Forced OAuth profile linking/image2.png -- 172.24kb -> 130.67kb (24.14%)\n/Server-side template injection/Lab Basic server-side template injection (code context)/image3.png -- 70.65kb -> 54.00kb (23.58%)\n/JWT/Lab JWT authentication bypass via kid header path traversal/image3.png -- 54.83kb -> 43.81kb (20.09%)\n/JWT/Lab JWT authentication bypass via weak signing key/image6.png -- 52.25kb -> 41.98kb (19.64%)\n/OAuth2/image2.jpeg -- 88.63kb -> 71.54kb (19.29%)\n/OAuth2/Lab Forced OAuth profile linking/image1.png -- 64.05kb -> 52.29kb (18.36%)\n/OAuth2/image1.jpeg -- 128.70kb -> 105.69kb (17.88%)\n/HTTP request smuggling/Lab HTTP request smuggling, obfuscating the TE header/image2.png -- 417.49kb -> 355.40kb (14.87%)\n/OS Command Injection/Lab OS command injection, simple case/image3.png -- 290.38kb -> 248.98kb (14.26%)\n/HTTP request smuggling/Lab HTTP request smuggling, basic CL.TE vulnerability/image5.png -- 257.93kb -> 222.22kb (13.84%)\n/OS Command Injection/Lab Blind OS command injection with time delays/image2.png -- 678.47kb -> 586.17kb (13.6%)\n/JWT/Lab JWT authentication bypass via flawed signature verification/image3.png -- 235.96kb -> 204.67kb (13.26%)\n/Authentication/Lab Brute-forcing a stay-logged-in cookie/image3.png -- 130.03kb -> 112.81kb (13.25%)\n/Insecure deserialization/Lab Using application functionality to exploit insecure deserialization/image3.png -- 187.84kb -> 163.69kb (12.86%)\n/Insecure deserialization/Lab Modifying serialized data types/image5.png -- 725.05kb -> 631.90kb (12.85%)\n/Insecure deserialization/Lab Arbitrary object injection in PHP/image5.png -- 684.28kb -> 596.55kb (12.82%)\n/Server-side template injection/Lab Basic server-side template injection/image3.png -- 322.12kb -> 281.48kb (12.62%)\n/HTTP request smuggling/Lab HTTP request smuggling, confirming a CL.TE vulnerability via differential responses/image2.png -- 177.47kb -> 155.08kb (12.61%)\n/Insecure deserialization/Lab Modifying serialized data types/image3.png -- 173.14kb -> 151.32kb (12.61%)\n/HTTP request smuggling/Lab HTTP request smuggling, basic TE.CL vulnerability/image2.png -- 270.23kb -> 236.18kb (12.6%)\n/JWT/Lab JWT authentication bypass via jku header injection/image5.png -- 214.38kb -> 187.91kb (12.35%)\n/Server-side template injection/Lab Server-side template injection in an unknown language with a documented exploit/image2.png -- 404.37kb -> 355.36kb (12.12%)\n/JWT/Lab JWT authentication bypass via jwk header injection/image3.png -- 146.71kb -> 129.08kb (12.02%)\n/Server-side template injection/Lab Basic server-side template injection (code context)/image2.png -- 89.25kb -> 79.48kb (10.94%)\n/Server-side template injection/Lab Basic server-side template injection/image1.png -- 468.73kb -> 425.19kb (9.29%)\n\nSigned-off-by: ImgBotApp ","shortMessageHtmlLink":"[ImgBot] Optimize images"}},{"before":"e4b9305757ed1c2603ce0496522cae7a670c80c7","after":"20a56c3be68814ea03ac8d44e3f9b318fb2f368f","ref":"refs/heads/main","pushedAt":"2023-07-07T16:17:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"2cdcb7c592c83fcbe3d59615255efd0e8fa128b3","after":"e4b9305757ed1c2603ce0496522cae7a670c80c7","ref":"refs/heads/main","pushedAt":"2023-07-07T16:17:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add auth labs links","shortMessageHtmlLink":"Add auth labs links"}},{"before":"3b424b37c87cf906d7488ebf6b540bc506cad429","after":"2cdcb7c592c83fcbe3d59615255efd0e8fa128b3","ref":"refs/heads/main","pushedAt":"2023-07-07T16:11:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: Brute-forcing a stay-logged-in cookie","shortMessageHtmlLink":"Add Lab: Brute-forcing a stay-logged-in cookie"}},{"before":"eccdf175813ce74f767dc676f90d990e588e9d4d","after":"3b424b37c87cf906d7488ebf6b540bc506cad429","ref":"refs/heads/main","pushedAt":"2023-07-07T16:09:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: Brute-forcing a stay-logged-in cookie","shortMessageHtmlLink":"Upload images Lab: Brute-forcing a stay-logged-in cookie"}},{"before":"f2e013efd857cb09b4c6827bd5a314840457a3a4","after":"eccdf175813ce74f767dc676f90d990e588e9d4d","ref":"refs/heads/main","pushedAt":"2023-07-07T16:08:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: Password reset broken logic","shortMessageHtmlLink":"Add Lab: Password reset broken logic"}},{"before":"cfd6ce904f84bf3984c1abaa39a163e4ffb32e5e","after":"f2e013efd857cb09b4c6827bd5a314840457a3a4","ref":"refs/heads/main","pushedAt":"2023-07-07T16:07:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: Password reset broken logic","shortMessageHtmlLink":"Upload images Lab: Password reset broken logic"}},{"before":"2186e0df327ee44bca5ab3fb69441356de4fb7cc","after":"cfd6ce904f84bf3984c1abaa39a163e4ffb32e5e","ref":"refs/heads/main","pushedAt":"2023-07-07T16:06:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: 2FA bypass using a brute-force attack","shortMessageHtmlLink":"Add Lab: 2FA bypass using a brute-force attack"}},{"before":"227faa32ef50d3f05eb59149b75bb40f4e0d71e5","after":"2186e0df327ee44bca5ab3fb69441356de4fb7cc","ref":"refs/heads/main","pushedAt":"2023-07-07T15:59:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: 2FA bypass using a brute-force attack","shortMessageHtmlLink":"Upload images Lab: 2FA bypass using a brute-force attack"}},{"before":"7adb7204c1c5d09832e96bbfa7f7f5dd019b569d","after":"227faa32ef50d3f05eb59149b75bb40f4e0d71e5","ref":"refs/heads/main","pushedAt":"2023-07-07T15:57:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: 2FA broken logic","shortMessageHtmlLink":"Add Lab: 2FA broken logic"}},{"before":"68ea400aec833176d2e618e25bad6698fc27694a","after":"7adb7204c1c5d09832e96bbfa7f7f5dd019b569d","ref":"refs/heads/main","pushedAt":"2023-07-07T15:55:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: 2FA broken logic","shortMessageHtmlLink":"Upload images Lab: 2FA broken logic"}},{"before":"1847e96dbabf7537384197fd5dc81152c48794b7","after":"68ea400aec833176d2e618e25bad6698fc27694a","ref":"refs/heads/main","pushedAt":"2023-07-07T15:54:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: 2FA simple bypass","shortMessageHtmlLink":"Add Lab: 2FA simple bypass"}},{"before":"04330902204fea4cc355d66c4f6a7a2ee1438991","after":"1847e96dbabf7537384197fd5dc81152c48794b7","ref":"refs/heads/main","pushedAt":"2023-07-07T15:53:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: 2FA simple bypass","shortMessageHtmlLink":"Upload images Lab: 2FA simple bypass"}},{"before":"c134aafba9597b3b46ccfcc3390b60103832d311","after":"04330902204fea4cc355d66c4f6a7a2ee1438991","ref":"refs/heads/main","pushedAt":"2023-07-07T15:52:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: Broken brute-force protection, multiple credentials per request","shortMessageHtmlLink":"Add Lab: Broken brute-force protection, multiple credentials per request"}},{"before":"974c834cdd9bba5d56717f925cbb71edb2f7e501","after":"c134aafba9597b3b46ccfcc3390b60103832d311","ref":"refs/heads/main","pushedAt":"2023-07-07T15:50:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: Broken brute-force protection, multiple credentials per request","shortMessageHtmlLink":"Upload images Lab: Broken brute-force protection, multiple credential…"}},{"before":"91770476d0930787023be73ab248c0fa0809ceba","after":"974c834cdd9bba5d56717f925cbb71edb2f7e501","ref":"refs/heads/main","pushedAt":"2023-07-07T15:49:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: Username enumeration via account lock","shortMessageHtmlLink":"Add Lab: Username enumeration via account lock"}},{"before":"c3bf569f78a1007a13b14f526cc6f6fe33a1d165","after":"91770476d0930787023be73ab248c0fa0809ceba","ref":"refs/heads/main","pushedAt":"2023-07-07T15:48:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Merge branch 'main' of https://github.com/aboelkassem/portswigger-labs","shortMessageHtmlLink":"Merge branch 'main' of https://github.com/aboelkassem/portswigger-labs"}},{"before":"36a584a448078549e33c301d7aa2683a2b85d4a4","after":"c3bf569f78a1007a13b14f526cc6f6fe33a1d165","ref":"refs/heads/main","pushedAt":"2023-07-07T15:45:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: Broken brute-force protection, IP block","shortMessageHtmlLink":"Add Lab: Broken brute-force protection, IP block"}},{"before":"ff805a137da38a0c9c1d8d8b1b0d11fdbb4015fc","after":"36a584a448078549e33c301d7aa2683a2b85d4a4","ref":"refs/heads/main","pushedAt":"2023-07-07T15:43:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: Broken brute-force protection, IP block","shortMessageHtmlLink":"Upload images Lab: Broken brute-force protection, IP block"}},{"before":"19bd527981cd3616889bdf29f77f5b2590fe42c4","after":"ff805a137da38a0c9c1d8d8b1b0d11fdbb4015fc","ref":"refs/heads/main","pushedAt":"2023-07-07T15:34:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: Username enumeration via response timing","shortMessageHtmlLink":"Add Lab: Username enumeration via response timing"}},{"before":"8d2ff70b86f4c786b32420da5ceec105f2eebb4a","after":"19bd527981cd3616889bdf29f77f5b2590fe42c4","ref":"refs/heads/main","pushedAt":"2023-07-07T15:31:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: Username enumeration via response timing","shortMessageHtmlLink":"Upload images Lab: Username enumeration via response timing"}},{"before":"3f7067ca6cb048acffe916cd6610b90e26ec1204","after":"8d2ff70b86f4c786b32420da5ceec105f2eebb4a","ref":"refs/heads/main","pushedAt":"2023-07-07T15:28:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: Username enumeration via subtly different responses","shortMessageHtmlLink":"Add Lab: Username enumeration via subtly different responses"}},{"before":"274a568a1e88e77dbed2548151f94dac71a7dbab","after":"3f7067ca6cb048acffe916cd6610b90e26ec1204","ref":"refs/heads/main","pushedAt":"2023-07-07T15:26:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: Username enumeration via subtly different responses","shortMessageHtmlLink":"Upload images Lab: Username enumeration via subtly different responses"}},{"before":"3ce0e5ed3d59eedb6be2d1e477fd7db9379f1cbc","after":"274a568a1e88e77dbed2548151f94dac71a7dbab","ref":"refs/heads/main","pushedAt":"2023-07-07T15:26:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"e5c2186961ae1ca7b5b20178808a0872a684fce1","after":"3ce0e5ed3d59eedb6be2d1e477fd7db9379f1cbc","ref":"refs/heads/main","pushedAt":"2023-07-07T15:13:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Add Lab: Username enumeration via different responses","shortMessageHtmlLink":"Add Lab: Username enumeration via different responses"}},{"before":"b6011623db6caf68851657d7aca7bef6dc33bed8","after":"e5c2186961ae1ca7b5b20178808a0872a684fce1","ref":"refs/heads/main","pushedAt":"2023-07-07T15:11:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Upload images Lab: Username enumeration via different responses","shortMessageHtmlLink":"Upload images Lab: Username enumeration via different responses"}},{"before":"4ab648852bad8f7bac75c1d5ecd4b89a1b20410e","after":"b6011623db6caf68851657d7aca7bef6dc33bed8","ref":"refs/heads/main","pushedAt":"2023-07-07T15:08:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"3d61408ecb3fc74c95d393711e7792f3df99060c","after":"4ab648852bad8f7bac75c1d5ecd4b89a1b20410e","ref":"refs/heads/main","pushedAt":"2023-07-07T15:03:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"aboelkassem","name":"Mohamed Kassem","path":"/aboelkassem","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42910789?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADUpHDpAA","startCursor":null,"endCursor":null}},"title":"Activity · aboelkassem/portswigger-labs"}